Oracle 对事务的处理
1. 当执行事务操作(DML 语句)时,Oracle 会在被操作的表上加锁,以防止其他用户对表的操作
2. 使用commit 语句提交事务后,事务结束,删除保存点,释放锁,其他session 可以看到变更的新数据
3. 退出的时候,Oracle 自动提交事务。
4. rollback; 返回到最后一次事务提交时的状态,即取消全部事务
5. java 中如何使用事务?
最简单的应用
conn.setAutoCommit(false);
…
…
…
conn.commit();
最后在catch 块中conn.rollback();
6. 只读事务
只读事务是指只允许执行查询的操作,而不允许执行其他任何DML 操作的事务。使用只读事务可以确保用户只能取得某时间点的数据。 在设置了只读事务后,尽管其他session 可能会提交新的事务,但是只读事务将不会取得最近变化后的数据,从而保证取得特定时间点的数据信息。
实例:
(1) 用户A 设置 set transaction read only;
(2) 用户B 进行DML 操作
(3) 用户B commit ;
(4)此时,用户A 查询到的数据和用户B commit 后的数据是不一致的,即A 和B 查询到的数据是不同的。从而保证了A 能取得特定时间点的数据