java中使用Connection管理事务

在学习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
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容