SSM--事务
Spring— 事务
声明式事务与编程式事务
声明式:通过注解等方式,告诉框架,我要做什么,至于怎么做让框架自己做
prons:代码量小
cons: 封装太多
编程式:通过代码的方式,告诉框架,我要干什么,以及需要自己写如何实现
事务细节
1、transactionManager:事务管理器 :控制事务的获取、提交、回滚
底层默认哪个事务管理器?默认使用 jdbcTransactionManager
底层原理:事务管理器:TransactionManager :控制提交和回滚 事务拦截器:TransactionInterceptor:控制何时提交和回滚
2、propagation:传播行为
3、isolation:隔离级别
4、timeout:超时时间,事务超时:事务超时,秒为单位
一旦超过事务规定时间 就会回滚 超时时间是指:从方法开始到最后一次操作数据库结束的时间
5、readOnly:只读优化
6、rollbackFor:指明哪些异常需要回滚。 不是所有的异常都引起事务回滚
异常:运行时异常(unchecked exception[非受检查异常]、编译时异常(checked exception[受检异常])
回滚的默认机制:
运行时异常:回滚
编译时异常:不回滚
隔离级别
隔离级别类型
Mysql 默认:可重复读 快照读
注意:一定关注异常的传播连
参数设置项也会传播,如果小事务和大事务共用一个事务,小事务要按照大事务的设置,小事务自己的设置失效