Spring之事务声明
为什么需要事务?
简单的说,就是不增加代码,来处理异常。
一个使用 MyBatis-Spring 的其中一个主要原因是它允许 MyBatis 参与到 Spring 的事务管理中。而不是给 MyBatis 创建一个新的专用事务管理器,MyBatis-Spring 借助了 Spring 中的
DataSourceTransactionManager
来实现事务管理。一旦配置好了 Spring 的事务管理器,你就可以在 Spring 中按你平时的方式来配置事务。并且支持
@Transactional
注解和 AOP 风格的配置。在事务处理期间,一个单独的SqlSession
对象将会被创建和使用。当事务完成时,这个 session 会以合适的方式提交或回滚。事务配置好了以后,MyBatis-Spring 将会透明地管理事务。这样在你的 DAO 类中就不需要额外的代码了。
Spring给了一个约定(AOP开发也给了我们一个约定),如果使用的是声明式事务,那么当你的业务方法不发生异常(或者发生异常,但该异常也被配置信息允许提交事务)时,Spring就会让事务管理器提交事务,而发生异常(并且该异常不被你的配置信息所允许提交事务)时,则让事务管理器回滚事务。
问题:
总的配置类
测试
错误:可以看到上面我们的delete写错了,所以会报错
但是我们发现,张三这个法外狂徒还是进去了
咋办捏?我们终于想起来,开篇的事务处理。
这样就好了,把上面的配置写进去,重测
查出来了。
- 点赞
- 收藏
- 关注作者
评论(0)