事务:一个包含多个步骤的事务的业务操作,如果这个业务操作被事务管理,这多个步骤要么同时成功,要么同时失败。
开启事务:在执行sql前开启
提交事务:在sql执行完提交事务
回滚事务:在catch中回滚事务
public class jdbcdemo10 {
public static void main(String[] args) {
Connection conn=null;
PreparedStatement p1= null;
PreparedStatement p2 =null;
try {
conn = JDBCUtils.getConnection();
//开启事务
conn.setAutoCommit(false);
String sql1 ="update account set balance = balance -? where id = ?";
String sql2 ="update account set balance = balance +? where id = ?";
p1 = conn.prepareStatement(sql1);
p2 = conn.prepareStatement(sql2);
p1.setDouble(1,500);
p1.setInt(2,1);
p2.setDouble(1,500);
p2.setInt(2,2);
p1.executeUpdate();
p2.executeUpdate();
//数据提交
conn.commit();
} catch (Exception throwables) {
try {
if (conn !=null){
//数据回滚
conn.rollback();
}
} catch (SQLException e) {
e.printStackTrace();
}
throwables.printStackTrace();
}finally {
JDBCUtils.close(p1,conn);
JDBCUtils.close(p2,conn);
}
}
}
本文详细介绍了如何在Java中使用JDBC进行事务操作,包括开启事务、提交与回滚事务的流程。通过实例展示了如何确保两个更新操作的原子性,以防止数据一致性问题。

1233

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



