
在学习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



















































暂无评论内容