SpringBoot 事务管理Transactional 数据回滚 数据一致性

SpringBoot 事务的属性rollbackFor 与 propagetion

介绍

SpringBoot当中的事物他保证了一致性,要么全部一起成功(提交),要么一起失败,失败(回滚)后数据会回到当初的样子,是一组操作的集合。

事物类型

  • 开启事物
  • 提交事物
  • 回滚事物

案例

java 复制代码
   @Override
    public void insert(Test t) {
        classesMapper.delete(1);//删除班级
        int n =1/0;//这里会发送异常
        testMapper.delete(1);//根据班级删除学生
    }

这是一个删除数据的方法,先删除班级,然后根据班级ID删除班级下的学生,但是走到第二行" int n =1/0;"这里就会抛出异常,而且删除学生的方法并没有被执行,这样就导致了数据不一致。这种情况就可以使用事物来操作,发生了异常就回滚到之前的数据,保证了数据的完整性。要么一起成功,要么一起失败。

开启事物前置条件

表引擎必须为,InnoDB

开启事物

@Transactional 在方法上添加 ,这样下来要么都删除成功,如果发送异常两个表的数据都不变化(回滚)。

开启事物 -> 发送错误-》提交事物-》回滚事物

java 复制代码
 @Override
    @Transactional //开启事物
    public void insert()  {
            classesMapper.delete(1);//删除班级
            int n =1/0;//这里会发送异常
            testMapper.delete(1);//根据班级删除学生
    }

不同位置上添加

  • 方法上添加:当前这个方法开启事物管理
  • 类上:类中所有的方法开启事物管理
  • 接口上:接口所有实现类的方法交给事务管理
相关推荐
烂蜻蜓25 分钟前
Flask入门教程(二十六):Session API——用户会话状态管理
后端·python·flask
霸道流氓气质28 分钟前
Spring AI异常处理与重试机制
java·人工智能·spring
郑州光合科技余经理2 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
萧瑟余晖2 小时前
Java深入解析篇三十三之密封类与接口(Sealed Classes)详解
java·开发语言
论迹复利6 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
小江的记录本6 小时前
【CSS】CSS 动画:transition、animation、transform、CSS3 新特性(附《思维导图》)
前端·css·安全·spring·前端框架·css3·动画
张宇Joaquin6 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
736c7 小时前
C语言-数组 07
c语言·开发语言
宸津-代码粉碎机7 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
2601_963749108 小时前
越华环保集团数字化污水治理:端边云采集架构与平台对接实现
java·大数据·架构