基本步骤:
开启事务(一组操作开始前,开启事务):start transaction/begin
提交事务(这组操作全部成功后,提交事务):commit;
回滚事务(中间任何一个操作出现异常,回滚事务):rollback
Spring事务管理
注解
注解:@Transactional
位置:业务(service)层的方法上、类上、接口上
作用:将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常,回滚事务
事务属性-回滚
rollbackFor
默认情况下,只有出现RuntimeException才回滚异常。rollbackFor属性用于控制出现何种异常类型,回滚事务。
@Transactional (rollbackFor = Exception.class)//出现任何异常都会回滚
@Override
public void delete(Integer id) throws Exceeption {
deptMapper.deleteById(id);//删除部门
if(true){
throw new Exception("出错啦啦...");
empMapper.deleteByDeptId(id);//删除部门下的员工
事务属性-传播行为
属性值 含义
REQUIRED 【默认值】需要事务,有则加入,无则创建新事务
REQUIRES_NEW 需要新事务,无论有无,总是创建新事务
SUPPORTS 支持事务,有则加入,无则在无事务状态中运行
NOT SUPPORTED 不支持事务,在无事务状态下运行,如果当前存在已有事务,则挂起当前事务
MANDATORY 必须有事务,否则抛异常
NEVER 必须没事务,否则抛异常
例如:
@Transactional
public void a(){
userService.b();
}
@Transactional (propagation = Propagation.REQUUIRED;
public void b(){
。。。。。。。
}
try{
} finally{
//此处的代码无论有没有异常都会执行!
}
标签:事务,步骤,void,rollbackFor,回滚,使用,异常,Transactional From: https://www.cnblogs.com/shitou2023/p/17519774.html