zoukankan      html  css  js  c++  java
  • jdbc、事务(Transaction)、批处理 回顾

    论文写的头疼,回顾一下jdbc,换换脑子

    传统的写法:

    1.加载驱动类

    class.forname("jdbc类的包结构");

    2.获得连接

    Connection conn=DriverManager.getConnection("url","username","userpwd");

    3.获得描述

    Ststement stmt =conn.createStstement();

    4.执行动作

    stmt.executeCreate("sql");

    ResultSet rs=stmt.executeQuery("sql");

    while(rs.next){

    }

    注意:传统写法安全性不是很好,有可能遭到sql恶意注入的问题

    可以将描述替代为

    PreparedStatement pstmt=conn.PreparedStatement("sql");

    当然此时的sql语句要采用占位符的形式

    insert into test(user,name,pwd) values(?,?,?)

    同时,在执行动作时,就不必传入“sql”参数

    当然在执行动作之前要设置参数

    pstmt.setString(1,"");

    pstmt.setString(2,"");

    pstmt.setInt(3,"");

     注意要遵循类型的方式

    以上代码不代表具体执行代码,只具备伪代码的功能。

    因为有些方法具体怎么拼写,我忘了

    凡是涉及到操作数据库,免不了要说说事务(Transaction)了:

    事务:保证与数据库操作的过程中,数据的一致性和完整性。

    事务的属性:

    ACID

    即:

    Atomic原子性:一堆又一堆的事务操作,要么全都成功,要么全都失败,不存在部分成功或失败的情况

               开始事务

                       一堆事务操作

                       ……

               事务结束

    Consistency一致性:事务操作前后,数据满足同样的规则

    Isolation隔离性:事务内部的数据对外的可见性和可操作性。即不同事务边界内的数据是限制权限的

    D稳定性、持久性:事务内部的数据都能够呗正确的持久化

    jdbc默认是自动提交的,只要执行动作语句成功,哪怕下一句异常,数据仍然被提交!

    jdbc手动设置事务的方法:

    首先,关闭jdbc的自动提交功能

      conn.setAutoCommit(false);

    其次,在执行动作成功后,提交

      conn.commit();

    最后,如果有异常,事务回滚

      conn.rollback();

    关于批处理:

    即存在多条sql的时候,可通过batch进行批处理

    string sql1="……";

    string sql2="……";

    stmt.addBatch(sql1);

    stmt.addBatch(sql2);

    完整教程:http://download.csdn.net/detail/u012373717/8874243

  • 相关阅读:
    div 垂直居中的方法
    vs code添加到鼠标右键
    win10系统迁移到新的硬盘
    使用layui iframe弹层,各弹层之前的传值问题
    layui js动态添加的面板不能折叠
    Nginx系列6:对称加密与非对称加密各自的应用场景
    Nginx系列5:从网络原理来看SSL安全协议
    Nginx系列0:Nginx学习历程
    加扰与加密&解扰与解密
    微信小程序学习过程
  • 原文地址:https://www.cnblogs.com/felixzh/p/4622642.html
Copyright © 2011-2022 走看看