spring的事务隔离级别

news2025/7/14 18:34:21
一,spring支持的常用数据库事务传播属性和事务隔离级别

事务的传播行为:一个方法在运行了一个开启事务的方法中时,当前方法是使用原来的事务还是开启一个新的事务。
事务传播的行为有传播属性指定,Spring定义了7中类传播行为,如下
在这里插入图片描述
其重点主要讲讲其中的两个:REQUIRED,REQUIRES_NEW。

开启事务的注解:开启事务的注解:Transactionl

REQUIRED:
如果当前方法中有事务在运行,当前这个方法就是在事务内运行,否则就启动一个新事务,并在自己的事务内运行

如100块钱,同时购买两本60块钱的书,由于是在当前事务中运行,
为了保证事务的原子性,那么两本书购买都同时失败

REQUIRES_NEW:当前方法必须启动新事务,并在它自己的事务内运行,如果有实物运行,应该将它挂起

同上,如果开启一个新的事务,那么可以允许购买一本书,另一本书失败回滚
二、事务的并发问题

假设有两个事物Transactiona,Transactionb并发执行
1,脏读

a将某条记录的AGE的值从20修改为30
b读取了a更新后的值:30
而a就行了回滚,ace恢复到了20
而b读取到的数据就是30,而且是一个无效的值

2,不可重复读

a读取了ace的值为20
b将这个ace的值修改成30
a再次读取ace的值为30,和第一次读取不一致

3,幻读

a读取了表中的一部分数据
b向表中插入了新的行
三、事物的隔离级别

数据库系统必须具有隔离并发运行各个事务的能力,使他们不会互相影响,避免各种并发问题。
一个事务与其他事务隔离的程度称为隔离级别。sql标准中规定了多种事务的隔离级别,不同的隔离级别对应不同的干扰程度,隔离级别越高,数据一致性越好但并发性弱

1,读未提交(READ UNCOMMITTED)
	允许事务a读取事务b未提交的修改
2,读已提交(READ COMMINTTED)
	要求事务a只能读取事务b已提交的修改
3,可重复读(REPQATABLE READ)
	确保事务a可以多次从一个字段中读取到相同的值,即事务a执行期间
	禁止其他事务对该字段进行更新
4,串行化(SERIALIZABLE)
	看这个单词,像不像一个序列化
	确保事务a可以多次从一个表中读取到相同的行,在事务a中执行期间
	禁止其他事务对这个表进行添加,更新,删除操作。可以避免任何并发问题发生,
	但是性能低下

在这里插入图片描述

四、事务的特征

数据库事务必须具备 ACID 特征。分别表示原子性(Automic),一致性(Consistency),隔离性(Isolation),持久性(Durability)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/989970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LAN9252芯片控制资料

一,整个ethercat项目开发流程 通过STM32相关学习板,理解EtherCAT协议栈和通信步骤。根据项目需求构建XML,该XML将会由TwinCAT2解析,将相关特STM32程序烧写,修改应用层协议的程序。STM32作为SPI主模式与ZYNQ LAN9252进行…

咪蒙团队转型做短剧行业,年收入近2个亿

我是卢松松,点点上面的头像,欢迎关注我哦! 很多人不知道咪蒙是谁,他曾经是公众号时代的no.1,她发一篇带广告的推文大几十万, 那个时候不知道带动多少人去做公众号,2019年发表不恰当文章而被封禁。 但最近我看到一则新…

ABAP BAPI_ACC_DOCUMENT_POST 中 EXTENSION1的用法

BAPI_ACC_DOCUMENT_POST 在过账会计凭证时候,经常会发现一些标准字段在参数中并没有 可以通过CMOD/SMOD增强出口--》ACBAPI01--》EXIT_SAPLACC4_001--》ZXACCU15 示例代码: DATA: wa_extension TYPE bapiextc,it_extension TYPE STANDARD TABLE OF ba…

Adobe Acrobat Reader界面改版 - 解决方案

问题 日期:2023年9月 Adobe Acrobat Reader下文简称Adobe PDF Reader,此软件会自动进行更新,当版本更新至2023.003.20284版本后。 软件UI界面会大改版:书签页变成了右边、工具栏变到了左边、缩放按钮变到了右下角,如…

Voxel R-CNN:基于体素的高性能 3D 目标检测

论文地址:https://arxiv.org/abs/2012.15712 论文代码:https://github.com/djiajunustc/Voxel-R-CNN 论文背景 基于点的方法具有较高的检测精度,但基于点的方法通常效率较低,因为对于点集抽象来说,使用点表示来搜索最…

Spring系列文章:Spring使用JdbcTemplate

一、简介 JdbcTemplate是Spring提供的⼀个JDBC模板类&#xff0c;是对JDBC的封装&#xff0c;简化JDBC代码。 当然&#xff0c;你也可以不⽤&#xff0c;可以让Spring集成其它的ORM框架&#xff0c;例如&#xff1a;MyBatis、Hibernate等。 第一步&#xff1a;引入依赖 <d…

Vue.js 中的路由(Route)跳转

Vue.js 中的路由 官方解释 在 Vue.js 中&#xff0c;路由是一种用于导航和页面跳转的重要概念。Vue 提供了一个名为 Vue Router 的官方插件&#xff0c;用于构建单页面应用程序&#xff08;SPA&#xff09;的路由系统。Vue Router 允许您将不同的组件映射到应用程序的不同 URL…

​重生奇迹MU弓箭手PK路线​

定位远程物理输出的弓箭手职业&#xff0c;是很多女性玩家都比较喜欢的&#xff0c;操作难度非常低&#xff0c;其持续输出以及远距离攻击特性&#xff0c;都让她表现非常不错。 一般重生奇迹弓箭手在日常副本时都是选择堆输出&#xff0c;然后就是恢复能力。但是pk完全不一样…

【Spring面试】BeanFactory与IoC容器的加载

文章目录 Q1、BeanFactory的作用是什么&#xff1f;Q2、BeanDefinition的作用是什么&#xff1f;Q3、BeanFactory和ApplicationContext有什么区别&#xff1f;Q4、BeanFactory和FactoryBean有什么区别&#xff1f;Q5、说下Spring IoC容器的加载过程&#xff08;※&#xff09;Q…

自造简易版音频进度条

最近在做音乐播放器页面, 积累了很多有趣的经验, 今天先分享播放进度条的开发过程. 效果 话不多说&#xff0c;先看效果 支持点击修改进度&#xff0c;拖拽修改进度&#xff0c;当然大家肯定都知道ui库里面有现成的&#xff0c;为何要自己造一个 首先著名的ui库中确实都要这…

flask bootstrap页面json格式化

html <!DOCTYPE html> <html lang"en"> <head><!-- 新 Bootstrap5 核心 CSS 文件 --> <link rel"stylesheet" href"static/bootstrap-5.0.0-beta1-dist/css/bootstrap.min.css"><!-- 最新的 Bootstrap5 核心 …

C++ goto 语句

goto 语句允许把控制无条件转移到同一函数内的被标记的语句。 注意&#xff1a;在任何编程语言中&#xff0c;都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪&#xff0c;使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。…

【vue3】一些关于hooks的使用经验

前言 最近接到了一个需求&#xff0c;隔壁嵌入式部门希望我们用前端解析渲染Kconfig表单。这篇文章用来记录一下本次使用hook pinia vue3的经验 hooks hooks的概念最早是在 React 中听到的&#xff0c;虽然早些时间也写过一点react&#xff0c;但也只是照葫芦画瓢&#xf…

C++多线程编程(第四章 promise和future)

promise 和future promise用于异步传输变量 std::promise提供存储异步通信的值&#xff0c;再通过其对象创建的std::future异步获得结果。 std::promise只能使用一次。void set_value(_Ty&& _Val)设置传递值&#xff0c;只能调用一次std::future提供访问异步操作结果…

最新期权开户的形式有哪些?

期权目前都有哪些开户方式? 摘对于上证50etf期权的投资者来说,最关心的就是开户的问题了,而50etf期权开户方式目前主要有券商和平台开户两种,各有优缺点&#xff0c;下文介绍最新期权开户的形式有哪些&#xff1f; 一、最新的期权开户方式有多种&#xff0c;包括在线开户、手机…

自己的碎碎念集合

自己的碎碎念集合 2023-09-07 c叠加三目运算符闰年计算法2023-08-13 一个小题目 AB problem一、问题及解答关碍 总结 2023-07-26 C的2至36进制转换函数一、itoa()函数的示例代码总结 2023-07-19 平面坐标下判断三角形以及输出周长和面积一. 基本知识总结 2023-06-25 达芬奇去除…

认识伦敦银的真相,并没有那么容易

我们进行伦敦银投资&#xff0c;其实就是想利用一定的时间在这个市场中获取盈利。对于普通人来说&#xff0c;我们获得金钱的方法就是从事一份工作努力的&#xff0c;在这个职位中&#xff0c;做好自己的本职工作&#xff0c;最后老板为我们的辛勤付出&#xff0c;支付相应的工…

快速构建基于Paddle Serving部署的Paddle Detection目标检测Docker镜像

快速构建基于Paddle Serving部署的Paddle Detection目标检测Docker镜像 项目介绍需要重点关注的几个文件构建cpu版本的docker构建gpu版本的docker&#xff08;cuda11.2cudnn8&#xff09; 阅读提示&#xff1a; &#xff08;1&#xff09;Paddle的Serving项目中&#xff0c;在t…

OpenCV 06(图像的基本变换)

一、图像的基本变换 1.1 图像的放大与缩小 - resize(src, dsize, dst, fx, fy, interpolation) - src: 要缩放的图片 - dsize: 缩放之后的图片大小, 元组和列表表示均可. - dst: 可选参数, 缩放之后的输出图片 - fx, fy: x轴和y轴的缩放比, 即宽度和高度的缩放比. - …

【React学习】React高级特性

1. 函数式组件和类组件区别 函数式组件 函数式组件是一种简单的组件定义方式&#xff0c;它是一个以JavaScript函数为基础的组件。 可以把函数式组件理解为纯函数&#xff0c;它的输入为props&#xff0c;输出为JSX。函数式组件没有状态&#xff0c;也没有生命周期。 functio…