一.事务
1.1 概念
事务是一个不可分割的工作逻辑单元,要么全部执行,要么都不执行;
1.2 事务的四个属性
原子性(atomicity)
事务是一个完整的操作,不可分,要么都执行,要么都不执行
一致性(consistency)
当事务完成时,数据必须处于一致的状态;即当事务提交之后,任何用户查询到的数据是一致的
隔离性(isolation)
对数据进行修改的所有并发事务是彼此隔离的
永久性(durability)
事务完成后,对数据库的修改永久保持,事务日志能够保持事务的永久性
注:一致读
如:早上10点 一个用户 执行查询语句,表数据量非常大,到10点30分才获取到结果。而10点20分另一个用户修改了表的数据,那么oracle返回的信息,是修改前的还是修改后的?
需要返回的是修改前的数据,undo段中保留10点20分之前的数据
1.3 事务操作的三个命令
commit 提交事务
savepoint 设置保存点
rollback 回滚
二.java事务操作
默认是自动提交,开启事务使用setAutoCommit(false),可避免自动提交;
通过savePoint()设置保存点