zoukankan      html  css  js  c++  java
  • jdbc 事务

     1.当Jdbc程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL语句。

    2.如果想让多条sql语句,共用一个事物,则需要关闭jdbc默认的事务提交,

    设置事务的提交方式为非自动提交:

       conn.setAutoCommit(false);

    Connection con =null;
    
         Statement st=null;
    
         ResultSet rs=null;
    
        PreparedStatement ps=null;
    
    publicvoid startTransaction(){
    
              
    
                  con = DBCManager.getConnect();//获取连接对象
    
                 
    
                 
    
                                try {
    
                      //设置事务的提交方式为非自动提交:
    
                  con.setAutoCommit(false);
    
                  //将需要添加事务的代码一同放入try,catch块中
    
     
    
                      //创建执行语句
    
                      String sql ="delete from me where id = 7";
    
                      String sql1 = "update me set name ='chengong' ,age ='34' where id =4";
    
                      //分别执行事务
    
                      ps = con.prepareStatement(sql);
    
                      ps.executeUpdate();
    
                      ps = con.prepareStatement(sql1);
    
                      ps.executeUpdate();
    
                      
    
                      //在try块内添加事务的提交操作,表示操作无异常,提交事务。
    
     
    
                      con.commit();
    
                     
    
                  } catch (SQLException e) {
    
                  try {
    
                      //.在catch块内添加回滚事务,表示操作出现异常,撤销事务:
    
                      con.rollback();
    
                  } catch (SQLException e1) {
    
                      // TODO Auto-generatedcatch block
    
                      e1.printStackTrace();
    
                  }
    
                      e.printStackTrace();
    
                  }f
    1)关闭自动提交事务。通过设置连接的自动提交事务属性为false,如下:
    
    Connection conn = DriverManager.getConnection("连接URL", "用户名", "密码");
    //关闭自动提交事务
    conn.setAutoCommit(false); 
    (2)如果执行顺利,提交事务;一旦发生异常,回滚(rollback)事务,如下:
    
    try{
        conn.setAutoCommit(false);     //关闭自动提交事务
        stmt = conn.createStatement();    //创建会话
        stmt.executeUpdate("sql语句");
        conn.commit();      //提交事务
    }catch(Exception e)
    {
        e.printStackTrace();
        conn.rollback();    //回滚事务    
    }
      
    
    (3)关闭连接,如下:
    
    finally{
        if(stmt != null)
            stmt.close();
        if(conn != null)
            conn.close();
    }
  • 相关阅读:
    Token ,Cookie和Session的区别
    极致Web性能 —— SPA性能指南
    关于前端数据&逻辑的思考
    移动端Retina屏boder 1px显示为2px或3px的解决方法
    Java连载8-基本数据类型2
    HTML连载25-通配符选择器&选择器综合练习
    Python连载25-函数tell&write&writeline$&持久化
    Python连载24-函数list&read&seek
    Java连载7-变量&数据类型
    HTML连载24-属性选择器(下)
  • 原文地址:https://www.cnblogs.com/panxuejun/p/5924179.html
Copyright © 2011-2022 走看看