在开发中最常用的就是事务,可以防止程序意外导致的数据错误,springboot在配合Mybaties开发的时候同样为开发者提供了事务的使用方法,而且使用很方便,你只需要在启动类上添加如下注解
@EnableTransactionManagement
随后在需要事务的Service层上添加事务注解即可
@Transactional(rollbackFor = RuntimeException.class)
rollbackFor
是用来设置那种类型的异常会触发事务的回滚,当然还有很多其他的可选参数,有兴趣的可以看看其他的资料。
使用事务的时候,需要注意的是,如果你在Service层将异常try
了,且没有做抛出处理,那么springboot的事务是不会生效的。
当你正常使用事务时,每一步持久层的操作,在输出日志中你会看到如下的输出提示,就代表着,当前是存在事务的
Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c8f9925]
Transaction synchronization committing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c8f9925]
Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c8f9925]
Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c8f9925]