spring事务的默认隔离级别_事务隔离级别有哪些

spring事务的默认隔离级别_事务隔离级别有哪些目录1、前言2、验证结论3、总结1、前言事务的四个隔离级别想必大家都已经清楚,但是在学习Spring的时候,我们发现Spring自己也有四个隔离级别(加上默认的是五个)。那么问题来了,当Spring设置的隔离级别和我们在数据库设置的隔离级别不一致时,哪个会生效?先抛出结论:Spring设置的隔离级别会生效2、验证结论要验证结论很简单,我们只需要在spring事务注解上面配置不同的隔离级别就行了:DAO层实现类的两个方法pay方法是模拟事务A先查询一次数据,然后休眠两秒再查询一次数据

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、前言

事务的四个隔离级别想必大家都已经清楚,但是在学习Spring的时候,我们发现Spring自己也有四个隔离级别(加上默认的是五个)。

那么问题来了,当Spring设置的隔离级别和我们在数据库设置的隔离级别不一致时,哪个会生效?

先抛出结论:

Spring设置的隔离级别会生效

2、验证结论

要验证结论很简单,我们只需要在spring事务注解上面配置不同的隔离级别就行了:

DAO层

在这里插入图片描述

实现类的两个方法

pay方法是模拟事务A先查询一次数据,然后休眠两秒再查询一次数据
在这里插入图片描述

pay1方法则是先休眠一秒,等事务A执行第一次查询后,更新数据,等事务A执行第二次查询,然后回滚数据

在这里插入图片描述

运行代码
在这里插入图片描述
主方法使用两个线程运行这两个方法(请忽略pay方法参数,我这是方便CV……)

结果如下,发生了脏读!

在这里插入图片描述

3、总结

我们知道,MySQL默认的隔离级别是REPEATABLE-READ,在这个级别下是不可能发生脏读的。但是在刚才的测试中却出现了脏读,这证明我们的结论是正确的,spring开启事务时,拿到的当前连接,会对当前会话设置事务隔离级别。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194146.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 实现输入一个小于1000的整数,对其进行因式分解

    python 实现输入一个小于1000的整数,对其进行因式分解

    2021年11月11日
    109
  • RRC信令过程概述

    RRC信令过程概述1RRC 协议功能为 NAS 层提供连接管理 消息传递等服务 对接入网的底层协议实体提供参数配置的功能 负责 UE 移动性管理相关的测量 控制等功能 2 nbsp RRC 状态 RRC IDLE nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp PLMN 选择 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp NAS 配置的 DRX 过程 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 系统信息广播和寻呼 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 邻小区测量 nbsp nbsp nbsp nbsp

    2025年9月18日
    3
  • protel 99se 简单的手动画pcb

    protel 99se 简单的手动画pcb(只适合做超级简单的板子)脑子里有原理图即可直接打开protel99se新建一个pcb(PCBdocument)1.      在左侧browsepcb下的browse的下拉框中选择libraries2.      可以看到compoents中有许多元器件选择自己需要的比如单片机就用DIP40就可以了3.      sip单列直插dip双列直插一

    2022年5月30日
    57
  • padstart方法_PADS 2.4打开PCB显示已停止工作

    padstart方法_PADS 2.4打开PCB显示已停止工作之前两天搞得头皮发麻,有个需求是写个版本比较的方法,比如’10.5.4’版本是否大于’9.52.1’版本。正常的思路是使用split去截取几段,然后做递归比较。如下://版本对比constsort=(item1,item2)=>{if(item1[0]>item2[0]){returntrue}elseif(item1…

    2025年10月14日
    3
  • java声明数组的时候,同时赋值[通俗易懂]

    java声明数组的时候,同时赋值[通俗易懂]声明数组的时候,同时赋值int[]ary1={1,2,3};

    2022年6月2日
    32
  • spring官方文档 中文_Spring软件

    spring官方文档 中文_Spring软件本文档是对spring官方文档的解读,原文档参见Spring官方文档,本人只是翻译和整理,由于水平有限,部分解读可能不正确,欢迎提出更好的意见和建议或者与我一起完成本次挑战!网页版移步我的临时网页Git传送门1Spring综述1.1jdk环境依赖从SpringFramework5.1开始,Spring需要JDK8+(JavaSE8+),并提供对JDK11LTS的开箱…

    2022年10月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号