59.说一下 spring 的事务隔离?

这篇具有很好参考价值的文章主要介绍了59.说一下 spring 的事务隔离?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

spring 的事务隔离有什么作用?

用来解决并发事务所产生一些问题,并发会产生什么问题?

  • 1.脏读
  • 2.不可重复度
  • 3.幻影读

事务隔离的概念

  • 通过设置隔离级别可解决在并发过程中产生的那些问题

分别举例说明

1.脏读
59.说一下 spring 的事务隔离?,spring,Spring最新全家桶面试1000道必考题,springmvc,spring,java,后端,spring boot,java-ee,spring cloud,intellij-idea
59.说一下 spring 的事务隔离?,spring,Spring最新全家桶面试1000道必考题,springmvc,spring,java,后端,spring boot,java-ee,spring cloud,intellij-idea

上述图表示:一个事务,读取了另一个事务中没有提交的数据,会在本事务中产生的数据不一致的问题

解决方式:

  • 使用 注解: @Transactional(isolation = Isolation.READ_COMMITTED)

解释说明:

  • 读已提交:READ COMMITTED
  • 要求Transaction01只能读取Transaction02已提交的修改。

2.不可重复度
59.说一下 spring 的事务隔离?,spring,Spring最新全家桶面试1000道必考题,springmvc,spring,java,后端,spring boot,java-ee,spring cloud,intellij-idea
上述图表示:一个事务中,多次读取相同的数据, 但是读取的结果不一样, 会在本事务中产生数据不一致的问题

解决方式:

  • 使用注解:@Transactional(isolation = Isolation.REPEATABLE_READ)

解释说明:

  • 可重复读:REPEATABLE READ
  • 确保Transaction01可以多次从一个字段中读取到相同的值,即Transaction01执行期间禁止其它事务对这个字段进行更
    新。(行锁)

3.幻影读
59.说一下 spring 的事务隔离?,spring,Spring最新全家桶面试1000道必考题,springmvc,spring,java,后端,spring boot,java-ee,spring cloud,intellij-idea
上述图表示:一个事务中,多次对数据进行整表数据读取(统计),但是结果不一样, 会在本事务中产生数据不一致的问题。
解决方式:

  • 使用注解:@Transactional(isolation = Isolation.SERIALIZABLE)

解释说明:

  • 串行化:SERIALIZABLE
  • 确保Transaction01可以多次从一个表中读取到相同的行,在Transaction01执行期间,禁止其它事务对这个表进行添加、更
    新、删除操作。可以避免任何并发问题,但性能十分低下。(表锁)

加深理解

很多人容易搞混不可重复读和幻读,确实这两者有些相似:

  • 对于前者, 只需要锁行
  • 对于后者, 需要锁表
    59.说一下 spring 的事务隔离?,spring,Spring最新全家桶面试1000道必考题,springmvc,spring,java,后端,spring boot,java-ee,spring cloud,intellij-idea
    1 并发安全:SERIALIZABLE>REPEATABLE_READ>READ_COMMITTED
    2 运行效率:READ_COMMITTED>REPEATABLE_READ>SERIALIZABLE

当不设置事务隔离级别将使用数据库的默认事务隔离级别:文章来源地址https://www.toymoban.com/news/detail-795389.html

#MYSQL:REPEATABLE‐READ
SELECT @@tx_isolation;
#ORACLE: READ_COMMITTED
SELECT s.sid, s.serial#,
CASE BITAND(t.flag, POWER(2, 28))
         WHEN 0 THEN 'READ COMMITTED'
         ELSE 'SERIALIZABLE'
     END AS isolation_level
 FROM v$transaction t
 JOIN v$session s ON t.addr = s.taddr AND s.sid = sys_context('USERENV', 'SID');

到了这里,关于59.说一下 spring 的事务隔离?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring事务的四大特性+事务的传播机制+隔离机制

    原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 事务是一个原子操作, 由一系列动作组成。 组成一个事务的多个数据库操作是一个不可分割的原子单元 ,只有所有的操作执行成功,整个事务才提交。 事务中的任何一个数据库操作失败

    2024年01月20日
    浏览(38)
  • spring事务管理详解和实例(事务传播机制、事务隔离级别)

    目录 1 理解spring事务 2 核心接口 2.1 事务管理器 2.1.1 JDBC事务 2.1.2 Hibernate事务 2.1.3 Java持久化API事务(JPA) 2.2 基本事务属性的定义 2.2.1 传播行为 2.2.2 隔离级别 2.2.3 只读 2.2.4 事务超时 2.2.5 回滚规则 2.3 事务状态 3 编程式事务 3.1 编程式和声明式事务的区别 3.2 如何实现编程式

    2024年02月06日
    浏览(42)
  • Spring 事务(编程式事务、声明式事务@Transactional、事务隔离级别、事务传播机制)

    本篇重点总结: 在 Spring 项目中使用事务,有两种方式:编程式手动操作和声明式自动提交,声明式自动提交使用最多,只需要在方法上添加注解 @Transactional 设置事务的隔离级别 @Transactional(isolation = Isolation.SERIALIZABLE),Spring 中的事务隔离级别有5种 设置事务的传播机制 @Tra

    2024年02月03日
    浏览(42)
  • Spring 事务的使用、隔离级别、@Transactional的使用

            Spring事务是Spring框架提供的一种机制,用于管理应用程序中的数据库事务。         事务是一组数据库操作的执行单元,要么全部成功提交,要么全部失败回滚,保证数据的一致性和完整性。 Spring事务提供了声明式事务和编程式事务两种方式: 编程式事务:

    2024年02月15日
    浏览(44)
  • Spring 事务的相关配置、传播行为、隔离级别及注解配置声明式事务

    目录 一、事务的相关配置 1. 添加测试标签 2. 添加对应方法 3. 测试 二、事务的传播行为 三、事务的隔离级别 四、注解配置声明式事务 1. 注册事务注解驱动 2. 加上注解 3. 配置类代替xml文件中的注解事务支持 4. 测试 往期专栏文章相关导读  1. Maven系列专栏文章 2. Mybatis系列专

    2024年02月08日
    浏览(44)
  • 【JavaEE】Spring事务-@Transactional参数介绍-事务的隔离级别以及传播机制

    【JavaEE】Spring 事务(2) 参数 作用 value 当配置了多个事务管理器时,可以使用该属性指定选择哪个事务管理器 transactionManager 当配置了多个事务管理器时,可以使用该属性指定选择哪个事务管理器 isolation 事务的隔离级别.默认值为solation.DEFAULT propagation 事务的传播机制,默认值

    2024年02月10日
    浏览(48)
  • 38、Spring事务的实现方式和原理以及隔离级别

    在使用Spring框架时,可以有两种使用事务的方式,一种是编程式的,一种是申明式的,@Transactional注解就是申明式的。 首先,事务这个概念是数据库层面的,Spring只是基于数据库中的事务进行了扩展,以及提供了一些能让程序员更加方便操作事务的方式。 比如我们可以通过在

    2024年02月16日
    浏览(43)
  • Spring Cloud Alibaba全家桶(九)——分布式事务组件Seata

    本文小新为大家带来 分布式事务组件Seata 相关知识,具体内容包括 分布式事务简介 (包括: 事务简介 , 本地事务 , 分布式事务典型场景 , 分布式事务理论基础 , 分布式事务解决方案 ), 分布式事务Seata使用 (包括: Seata是什么 , Seata的三大角色 , Seata的设计思路

    2024年02月03日
    浏览(60)
  • 【Spring/MySQL数据库系列】数据库事务的特点与隔离级别

    ⭐️ 前面的话 ⭐️ 本文已经收录到《Spring框架全家桶系列》专栏,本文将介绍有关数据库事务的特点以及隔离级别。 📒博客主页:未见花闻的博客主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📌本文由 未见花闻 原创, CSDN 首发! 📆首发时间:🌴2023年5月20日🌴 ✉️坚

    2024年02月05日
    浏览(53)
  • 深入了解 Spring boot的事务管理机制:掌握 Spring 事务的几种传播行为、隔离级别和回滚机制,理解 AOP 在事务管理中的应用

    🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.csdn

    2024年03月21日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包