在学习JDBC的有关内容后,我们知道可以用它来处理一些事务的问题。那么在具体事务的管理上,需要用到Connection来完成。主要分为三个方面:开启、提交和回滚。下面我们就这些情况,分别进行概念的理解。在掌握了具体的方法后,我们进一步的展开实例代码的学习。
1、管理事务
(1)开启事务setAutoCommit
调用该方法设置参数为false,即开启事务。
在执行sql之前开启事务。
(2)提交事务:commit()
当所有sql都执行完提交事务。
(3)回滚事务:rollback()
在catch中回滚事务。
2、实例
publicstaticvoidmain(String[]args){ Connectionconn=null; PreparedStatementpstmt1=null; PreparedStatementpstmt2=null; try{ //1.获取连接 conn=JDBCUtils.getConnection(); //开启事务 conn.setAutoCommit(false); //2.定义sql //2.1张三-500 Stringsql1="updateaccountsetbalance=balance-?whereid=?"; //2.2李四+500 Stringsql2="updateaccountsetbalance=balance+?whereid=?"; //3.获取执行sql对象 pstmt1=conn.prepareStatement(sql1); pstmt2=conn.prepareStatement(sql2); //4.设置参数 pstmt1.setDouble(1,500); pstmt1.setInt(2,1); pstmt2.setDouble(1,500); pstmt2.setInt(2,2); //5.执行sql pstmt1.executeUpdate(); //手动制造异常 inti=3/0; pstmt2.executeUpdate(); //提交事务 conn.commit(); }catch(Exceptione){ //事务回滚 try{ if(conn!=null){ conn.rollback(); } }catch(SQLExceptione1){ e1.printStackTrace(); } e.printStackTrace(); }finally{ //关闭资源 JDBCUtils.close(pstmt1,conn); JDBCUtils.close(pstmt2,null); }原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容