========
事务管理
========
1 事务的四大特性(ACID)
原子性(Atomicity):共生死,要么全部成功,要么全部失败。
一致性(Consistency):在执行事务前后,数据的状态要保持一致。
隔离性(Isolation):执行多个事务,相互不受影响。
_____________________________
|脏读|不可重复读|幻读
________|____|__________|____
读未提交| * | * | *
读已提交| | * | *
可重复读| | | *
串 行 化| | |
________|____|__________|____
持久性(Durability):一旦提交,所作改变永久有效。
2 事务的核心接口
事务定义接口
TransactionDefinition
描述事务的行为、隔离级别、超时等
|
|传参
v
事务管理接口 / DataSourceTransactionManager -> JDBC
PlatformTransactionManager - HibernateTransactionManager -> Hibernate
管理事务的提交、回滚等 - JpaTransactionManager -> JPA
| \ JtaTransactionManager -> JTA
|返回
v
事务状态接口
TransactionStatus
表示事务状态
Spring并不直接管理事务,而是通过多种事务管理接口的实现,将具体的事务管理工作委托给如JDBC、Hibernate、JPA、JTA等具体持久化平台所提供的事务管理功能。
3 JDBC事务管理器
在Spring配置中添加Bean:
4 Hibernate事务管理器
在Spring配置中添加Bean:
5 JPA事务管理器
在Spring配置中添加Bean:
6 JTA事务管理器
在Spring配置中添加Bean: