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

Spring事务管理

概念:事务 是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败

注意:

默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务

操作

事务控制主要三步操作:开启事务、提交事务/回滚事务

如何控制事务 ?

开启事务:start transaction/begin;

提交事务:commit;(全部成功)

回滚事务:rollback;(只要有一项失败)

Spring事务管理-控制事务

注解:@Transactional

作用:将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常

位置:业务(service)层的方法上、类上、接口上

事务进阶-rollbackFor

事务管理 -默认出现运行时异常RuntimeException才会回滚

如上代码任何异常都会进行事务回滚

事务进阶-propagation

事务传播行为:指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制

属性值含义
REQUIRED【默认值】需要事务,有则加入,无则创建新事务
REQUIRES NEW需要新事务,无论有无,总是创建新事务
SUPPORTS支持事务,有则加入,无则在无事务状态中运行
NOT SUPPORTED不支持事务,在无事务状态下运行,如果当前存在已有事务,则挂起当前事务
MANDATORY必须有事务,否则抛异常
NEVER必须没事务,否则抛异常

四大特性(ACID)

原子性Atomicity

事务是不可分割的最小单元,要么全部成功,要么全部失败

一致性Consistency

保事务完成时,必须使所有的数据都保持一致状态

隔离性Isolation

数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行

持久性Durability

事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
 

http://www.xdnf.cn/news/270343.html

相关文章:

  • [计算机网络]数据链路层
  • 1993年地级市民国铁路开通数据(地级市工具变量)
  • Servlet (一)
  • 大数据技术:从趋势到变革的全景探索
  • Servlet+tomcat
  • 链表的回文结构题解
  • Linux 的 epoll 与 Windows 的 IOCP 详解
  • Mybatis学习(上)
  • 04 基于 STM32 的时钟展示程序
  • 《算法导论(第4版)》阅读笔记:p4-p5
  • HTML与CSS实现风车旋转图形的代码技术详解
  • Webug4.0靶场通关笔记10- 第14关链接注入
  • 深度学习助力校园学生自杀预防
  • wsl2 中使用串口
  • 【信息系统项目管理师】【论文】项目背景示例
  • 66. Java 嵌套类
  • 二叉树最近公共祖先(后序遍历,回溯算法)
  • 强化学习--4.策略梯度方法(蒙特卡罗)
  • 数字信号处理学习笔记--Chapter 0 数字信号处理概述
  • Python 部分内置函数及其用法详解
  • HTML打印设置成白色,但是打印出来的是灰色的解决方案
  • mcp+llm+rag
  • 隐藏元素的多种方式
  • TFT(薄膜晶体管)和LCD(液晶显示器)区别
  • zabbix 重置登录密码
  • 【文献阅读】全球干旱地区植被突变的普遍性和驱动因素
  • 陶瓷陶器缺陷检测VOC+YOLO格式938张2类别
  • 时间交织(TIADC)的失配误差校正处理(以4片1GSPS采样率的12bitADC交织为例讲解)
  • 64常用控件_多元素控件介绍
  • Linux中进程的属性:进程优先级