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();
}

 

posted @ 2016-09-30 16:30  跨境电商杂货铺  阅读(157)  评论(0编辑  收藏  举报