事务的使用步骤

基本步骤:

开启事务(一组操作开始前,开启事务):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{

     //此处的代码无论有没有异常都会执行!

}

 

posted @   北京石头  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示