1、事务时序图
2、事务注解@transactional
事务中,继承自runtimeexception的异常,spring将回滚。
@trunsactional只能应用于public方法。
3、事务的传播性和隔离级别
事务的隔离级别
隔离级别 | 未提交读(read uncommitted) | 已提交(read commited) | 可重复(repeatable read) | 可串行(serializable) |
---|---|---|---|---|
脏读(dirty read) | 可能 | 不可能 | 不可能 | 不可能 |
不可重复读(nonRepeatable read) | 可能 | 可能 | 不可能 | 不可能 |
幻读(phantom read) | 可能 | 可能 | 可能 | 不可能 |
并发性能 | 高 | 中 | 中 | 低 |
数据库 | oracle、sqlserver、ob | mysql |
dirty read:B事务读取了A事务进行中确未提交的数据。
nonRepeatable read:A事务,前后两次读取不一样,在B事务修改下。
phantom read:A事务修改数据时,B事务也在修改。导致A事务修改后的数据不准确。