目录
一、什么是事物
当你需要一次执行多条SQL语句时,可以使用事务。通俗一点说,如果这几条SQL语句全部执行成功,则才对数据库进行一次更新,如果有一条SQL语句执行失败,则这几条SQL语句全部不进行执行,这个时候需要用到事务。
二、数据库事物的四大特征
- 原子性(Atomicity)
要么都执行,要么都不执行
- 一致性(Consistency)
事务前后的数据都是正确的
- 隔离性(Isolation)
事物之间相互隔离,互不干扰(并发执行的事务彼此无法看到对方的中间状态)
- 持久性(Durability)
事务一旦提交不可再回滚
三、数据库本身控制事物
begin transaction;
//1.本地数据库操作:张三减少金额
//2.本地数据库操作:李四增加金额
rollback;
或
commit transation;
四、jdbc使用事物
1.获取对数据库的连接
2.设置事务不自动提交(默认情况是自动提交的)
conn.setAutoCommit(false); //其中conn是第一步获取的随数据库的连接对象。
3.把想要一次性提交的几个sql语句用事务进行提交
try{
Statement stmt = null;
stmt =conn.createStatement();
stmt.executeUpdate(sql1);
int a=6/0;
stmt.executeUpdate(Sql2);
.
.
.
conn.commit(); //使用commit提交事务
}
4.捕获异常,进行数据的回滚(回滚一般写在catch块中)
catch(Exception e) {
...
conn.rollback();
}