概念
事务 是一组操作的集合,它是一个不可分割的工作单位,这些操作 要么同时成功,要么同时失败。
开启事务(一组操作开始前,开启事务):start transaction / begin ; 提交事务(这组操作全部成功后,提交事务):commit ; 回滚事务(中间任何一个操作出现异常,回滚事务):rollback ;
数据库表的前提
开启事物管理日志
#事物管理日志
logging:
level:
org.springframework.jdbc.support.JdbcTransactionManager: debug
注解
@Transactional
以删除部门,并且删除部门成员为案例:
deptserviceimpl
@Autowired
private EmpMapper empMapper;
@Transactional
@Override
public void delete(Integer id) {
deptMapper.delete(id);
empMapper.deletebyDeptId(id);
}
empmapper
// 根据部门id删除员工
@Delete("delete from emp where dept_id = #{id}")
void deletebyDeptId(Integer id);
若报错了
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(Integer id) {
deptMapper.delete(id);
int i = 1 / 0;
empMapper.deletebyDeptId(id);
}
知识点
@Transactional(rollbackFor = Exception.class)
@Transactional(propagation = Propagation.REQUIRED)