目标:
一课Spring
学习产出:
主题:spring的抽象事务
- 提供了一致的事务模型,无论使用哪种,都能够很好的抽象一起
- JDBC/Hibernate/myBatis
- DataSource/JTA
- 抽象最重要的接口:performTransactionManager
- 它的实现类
- DataSourceTransationManager
- HibernateTransationManager
- JtaTransationManager
- 里面有什么方法:commit、rollback、getTransaction
- 它的TransactionDefiniton
- Propagation(传播性)
- isolation(隔离性)
- Timeout(时间有多久)
- Read-only status(只读状态或者回滚状态的一些信息)
- 它的实现类
- 事务的传播性
- required:有就用原来的,没就开一个
- supports:可有可无
- mandatory:强制的,必须要有的
- requires_new:一定要开个新的
- not_supported:不支持
- never:不支持,并且有事务就抛异常
- nested:内嵌如果有,就开一个新的(里面的那个事务回滚,不会影响外面的那个事务)
- 官网的文档上只出现了required、requires_new、nested
- 事务的隔离级别
- 默认是-1(就是说取决于数据库)
- 编程式事务编程式事务
- 使用TransactionTemplate
- TransactionRollBack
- TransactionRollBackWithoutResult
- PlatformTransactionManager
- 使用TransactionDefinition进行定义
- 最变态的方法,自己写connection ,里面定义我的beginTransaction、commit、rollback
- 使用TransactionTemplate
总结:
啊 好困