一.什么是事务
事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。
事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消之前到事务开始时的所有操作。
二. 处理事务的流程
使用事务
//首先要关闭自动提交
connection.setAutoCommit(false);
String sql1="update account set money=money+500 where name='张三'";
String sql2="update account set money=money-500 where name='李四'";
PreparedStatement ps=connection.prepareStatement(sql1);
ps.executeUpdate();
PreparedStatement ps2=connection.prepareStatement(sql2);
ps2.executeUpdate();
//当所有的sql语句执行玩,并且没有异常的时候进行提交
connection.commit();
//如果执行有异常,那么我们就要进行回滚
connection.rollback();
三. 事务结束后
有一个坑,因为进行事务前关闭了自动提交,如果这里没开启自动提交(connection.setAutoCommit(true)),都需要手动提交(connection.commit()).