JDBC事务的处理
事务的方法:(使用对象:Connection对象)
开启事务:setAutoCommit(false)
参数是 true 或 false 如果设置为 false,表示关闭自动提交,相当于开启事务
提交事务:commit()
回滚事务:rollback()
开发步骤:
1) 获取连接
2) 开启事务
3) 获取到 PreparedStatement
4) 使用 PreparedStatement 执行两次更新操作
5) 正常情况下提交事务
6) 出现异常回滚事务
7) 最后关闭资源
账户案例代码:

package com.itheima;
import com.itheima.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Demo12Transaction {
//没有异常,提交事务,出现异常回滚事务
public static void main(String[] args) {
//1) 注册驱动
Connection connection = null;
PreparedStatement ps = null;
try {
//2) 获取连接
connection = JdbcUtils.getConnection();
//3) 开启事务
connection.setAutoCommit(false);
//4) 获取到PreparedStatement
//从jack扣钱
ps = connection.prepareStatement("update account set balance = balance - ? where name=?");
ps.setInt(1, 500);
ps.setString(2,"Jack");
ps.executeUpdate();
//出现异常
//System.out.println(100 / 0);
//给rose加钱
ps = connection.prepareStatement("update account set balance = balance + ? where name=?");
ps.setInt(1, 500);
ps.setString(2,"Rose");
ps.executeUpdate();
//提交事务
connection.commit();
System.out.println("转账成功");
} catch (Exception e) {
e.printStackTrace();
try {
//事务的回滚
connection.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
System.out.println("转账失败");
}finally {
//7) 关闭资源
JdbcUtils.close(connection,ps);
}
}
}
本文详细介绍了如何使用JDBC进行事务处理,包括开启事务、提交事务及回滚事务的具体步骤。通过一个账户转账的示例代码,展示了如何在Java中控制数据库的自动提交行为,实现数据的一致性和安全性。
2213

被折叠的 条评论
为什么被折叠?



