目录
事物回顾
概念
事务 是一组操作的集合,它是一个不可分割的工作单位,这些操作 要么同时成功,要么同时失败。
操作
开启事务(一组操作开始前,开启事务):start transaction / begin ;
提交事务(这组操作全部成功后,提交事务):commit ;
回滚事务(中间任何一个操作出现异常,回滚事务):rollback ;
Spring事物管理
引入案例
@Transactional注解
开启事物管理日志
事务进阶
1.rollbackFor
2.propagation
3.案例
无论成功或者失败都要记录操作日志,那就可以把这段实现代码放在finally中,无论是否发生异常都执行。
设置insert这个插入事务的方法属性propagation为REQUIRES_NEW,无论原先有没有事务都重新开一个新事务,当执行到insert时,将原先事务挂起,执行insert事务,执行完提交,再回到原事务,原事务出现异常就回滚,但是insert已经提交,无法回滚,这就实现了功能。
@Service
public class DeptLogServiceImpl implements DeptLogService {
@Autowired
private DeptLogMapper deptLogMapper;
@Transactional(propagation = Propagation.REQUIRES_NEW)//无论调用者有没有事务 调用insert时都会再开一个新事务
@Override
public void insert(DeptLog deptLog) {
deptLogMapper.insert(deptLog);
}
}