QQ群:Java资料共享群 59174518
什么是事务?
事务的特性(ACID);
事务并发问题;
- 脏读
- 幻读
- 不可重复读
事务的隔离级别(解决事务并发的问题)
- 读未提交
- 读已提交
- 事务的隔离级别
事务传播行为(指的是在某种情况下来管理事务)
- 传播行为就是指业务方法之间平行调用的时候,如果处理事务的问题.
- PROPAGION_XXX :事务的传播行为
- PROPAGATION_REQUIRED 支持当前事务,如果不存在 就新建一个(默认)
- PROPAGATION_SUPPORTS 支持当前事务,如果不存在,就不使用事务
- PROPAGATION_MANDATORY 支持当前事务,如果不存在,抛出异常
- PROPAGATION_REQUIRES_NEW 如果有事务存在,挂起当前事务,创建一个新的事务
- PROPAGATION_NOT_SUPPORTED 以非事务方式运行,如果有事务存在,挂起当前事务
- PROPAGATION_NEVER 以非事务方式运行,如果有事务存在,抛出异常
- PROPAGATION_NESTED 如果当前事务存在,则嵌套事务执行
Spring封装了事务管理的代码,用来管理事务;
-
因为在每个平台的事务代码都不一样,所以Spring就提供一个平台事务管理器(PlatformTransactionManager)
-
PlatformTransactionManager接口
-
打开事务的代码
-
提交事务的代码
-
回滚事务的代码
-
针对不同平台,hibernate平台,mybatis平台,都提供不同的实现类;
-
如果是真滴jdbc平台就会提供一个JDBCTransactionManager