当前位置: 首页 > news >正文

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

介绍

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

事物类型

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

案例

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

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

开启事物前置条件

表引擎必须为,InnoDB
前置条件

开启事物

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

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

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

不同位置上添加

  • 方法上添加:当前这个方法开启事物管理
  • 类上:类中所有的方法开启事物管理
  • 接口上:接口所有实现类的方法交给事务管理

相关文章:

  • 已经设置密码的情况下连接不上linux下redis服务的,解决办法
  • 高速接口PCB布局指南(五)高速差分信号布线(三)
  • Oracle 面试题 | 18.精选Oracle高频面试题
  • python实现中国剩余定理
  • 计算机网络原理基础
  • 专栏《数据结构与算法:初学者入门指南》序言
  • 详解各种LLM系列|LLaMA 1 模型架构、预训练、部署优化特点总结
  • 机器学习如何改变缺陷检测的格局?
  • 机器视觉系列之【硬件知识】-工业相机
  • 前端开发 :(二)HTML基础
  • thinkphp6入门(19)-- 中间件向控制器传参
  • DAC调节DCDC输出电压的电路方案分析
  • 突破编程_C++_面试(基础知识(8))
  • Python基础语法(内置Python, pycharm配置方式)
  • mmpose单机多卡训练问题
  • 收藏网友的 源程序下载网
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • Android开源项目规范总结
  • Angular数据绑定机制
  • crontab执行失败的多种原因
  • JS 面试题总结
  • LintCode 31. partitionArray 数组划分
  • PHP CLI应用的调试原理
  • React组件设计模式(一)
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SSH 免密登录
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 观察者模式实现非直接耦合
  • 回流、重绘及其优化
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (a /b)*c的值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (MATLAB)第五章-矩阵运算
  • (八)c52学习之旅-中断实验
  • (办公)springboot配置aop处理请求.
  • (笔试题)合法字符串
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)Linux——Linux常用指令
  • (一)基于IDEA的JAVA基础1
  • ./configure,make,make install的作用(转)
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .Net FrameWork总结
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET中统一的存储过程调用方法(收藏)
  • @Autowired和@Resource装配