事务回滚在企业级开发中实用较为频繁,近段时间使用到了,总结一下:
首先在springboot中是集成了事务的回滚操作了,也就是@Transactional注解。事务的回滚有两种方式,一种是自动回滚,另一种是手动回滚,下面对两种使用稍作总结。
1:自动回滚
首先回滚的方法必须是public的,其次在需要回滚的方法上添加@Transactional 这两者为前提条件。自动回滚当然是在发生异常才会回滚,大部分都会强调只能捕获RuntimeException,也就是非检查型异常。这个是没问题的,但是如果不是RuntimeException,你就必须进行处理,也就是捕获,否则程序根本无法正常,不报错。什么意思呢,意思就是没有处理的异常抛出了,才会进行自动回滚。如下:
失败案列1:
@Override
@Transactional
public Boolean add() {
try {
//第一次插入,教师表
Teacher teacher = teacherService.add();
if (teacher == null) {
return null;
}
//第二次插入