1、什么是事务?
事务时一组原子性的操作,这些操作要么一起完成,要么不一起完成。
2、事务的特性
ACID 原子性,一致性,隔离性和持久性
3、事务的隔离级别
事务的隔离级别就是两个事务在并发情况下执行可能导致数据并发问题(读后写,写后写和写后读),用加锁的方式在不同程度下保证数据的准确性。
- read uncommited 既没有加读锁,也没有加写锁,会导致脏数据。
- read commited 加了写锁,也就是在update, insert, delete的时候,会加行独占锁,会出现不可重复读(即一个事务里面,两次读取的结果不一样)
- repeatable read 加了读锁,也加了死锁,在select的时候,事务A会对记录加行共享锁,这个时候此行不允许背写,但可以背读,直至事务完成。但是加行锁有个问题就是,新增的行不受其控制,所以在两次统计全表的情况下,会出现幻影读。
- serialzable 串行执行事务,每次读都会加表共享锁。
4.spring 事务的实现
本质上是AOP
5.spring对事务的管理
事务的隔离性,事务的传播行为(默认为required),事务超时和只读设置。