spring事务
1、概念
事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。
2、事物特性(4种)ACID
(1)原子性 (atomicity):强调事务的不可分割。
(2)一致性 (consistency):事务的执行的前后数据的完整性保持一致。
(3)隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰 。
(4)持久性(durability):事务一旦结束,数据就持久到数据库。
3、安全性问题
(1)脏读 :一个事务读到了另一个事务的未提交的数据。
(2)不可重复读 :一个事务读到了另一个事务已经提交的 update 的数据导致多次查询结果不一致。
(3)虚幻读 :一个事务读到了另一个事务已经提交的 insert 的数据导致多次查询结果不一致。
4、设置事务隔离级别(5种)
(1)DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。
(2)读未提交(read uncommited) :脏读,不可重复读,虚读都有可能发生 。
(3)读已提交 (read commited):避免脏读。但是不可重复读和虚读有可能发生 。
(4)可重复读 (repeatable read) :避免脏读和不可重复读.但是虚读有可能发生。
(5)串行化的 (serializable) :避免以上所有读问题。
注: Mysql 默认:可重复读
Oracle 默认:读已提交
5、事务的传播行为(7种)
6、事务的5种属性
(1) 事务传播机制
(2) 事务隔离机制
(3) 只读
(4)事务超时
(5) 回滚规则