//java操作事物
@Test
public void m2()throws Exception{
//获取连接
Connection conn = JdbcUtils2.getConn();
//不允许自动提交
conn.setAutoCommit(false);
PreparedStatement pst = null;
try {
//先执行转入
//创建执行对象
pst = conn.prepareStatement("update zhanghu set money = money + 200 where name = 'jack'");
//执行更新
pst.executeUpdate();
/* conn = JdbcUtils2.getConn();
conn.setAutoCommit(false);*/
int i = 1/0;
//后执行转出
pst = conn.prepareStatement("update zhanghu set money = money - 200 where name = 'mary'");
pst.executeUpdate();
//如果代码能够运行到这里,就说所有语句都能够成功
conn.commit(); //提交事物
System.out.println("转账成功,恭喜恭喜!");
}catch (Exception e) {
//说明至少有一步是失败的
conn.rollback(); //回滚事物
System.out.println("转账失败,呵呵额呵呵哈!");
}finally {
JdbcUtils2.close(null, pst, conn);
}
}