Isolation 属性一共支持五种事务修改,具体介绍如下:

l DEFAULT 使用设置的防护级别 ( 默认 ) ,由 DBA 默认的设定来决定隔离级别 .

l READ_UNCOMMITTED 会出现脏读、不可重复读、幻读 ( 隔离级别最低,并发性能高 )

l READ_COMMITTED 会出现不可重复读、幻读问题(锁定正在读取的行)

l REPEATABLE_READ 会出幻读(锁定所读取的所有行)

l SERIALIZABLE 保证所有的状况不会发生(锁表)

不可重复读的重点是修改 :

同样的条件 , 你读取过的数据 , 再次读取出来发现值不一样了

幻读的重点在于新增以及删除

同样的条件 , 第 1 次跟第 2 次读起来的记录数不一样

Spring在TransactionDefinition接口中定义这种属性

在TransactionDefinition接口中定义了五个不同的事务隔离级别

ISOLATION_DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用默认的事务隔离级别.另外四个与JDBC的隔离级别相对应

ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看见这个事务已提交的数据。这种隔离级别会造成脏读,不可重复读和幻像读

ISOLATION_READ_COMMITTED 保证一个事务修改的数据提交后才会被另外一个事务读取。另外一个事务不能读取该事务已提交的数据。这种事务隔离级别可以防止脏读出现,但是可能会出现不可重复读跟幻像读。

ISOLATION_REPEATABLE_READ 这种事务隔离级别可以避免脏读,不可重复读。但是也许出现幻像读。它不仅确保一个事务不能读取另一个事务已提交的数据外,还确保了导致以下的状况造成(不可重复读)。

ISOLATION_SERIALIZABLE 这是花费最高代价之后更靠谱的事务隔离级别。事务被处置为次序执行。除了避免脏读,不可重复读外,还导致了幻像读。

在TransactionDefinition接口中定义了七个事务传播行为。

PROPAGATION_REQUIRED 如果存在一个事务spring 事务面试题,则支持当前事务。如果没有事务则进入一个新的事务。

PROPAGATION_SUPPORTS 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。但是针对事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。

PROPAGATION_MANDATORY 如果尚未存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。

PROPAGATION_REQUIRES_NEW 总是开启一个新的事务。如果一个事务已经存在spring 事务面试题,则将这个存在的事务挂起。

PROPAGATION_NOT_SUPPORTED 总是非事务地执行,并挂起任何存在的事务。

PROPAGATION_NEVER 总是非事务地执行,如果存在一个活动事务,则抛出异常

PROPAGATION_NESTED如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-141331-1.html

事务隔离级别和传播行为_Spring五个事务隔离级别和七个事务传播行为相关推荐

  1. Spring五个事务隔离级别和七个事务传播行为

    Spring五个事务隔离级别和七个事务传播行为 1. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数 ...

  2. spring事务(Transaction)的七种事务传播行为及五种隔离级别

    1. 首先,说说什么事务(Transaction) 事务,就是一组操作数据库的动作集合.事务是现代数据库理论中的核心概念之一. 如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事 ...

  3. spring 事务隔离级别和传播行为_Spring事务传播实战

    事务传播实战 事务具有四个特性 --ACID.其中 A 代表原子性,意思是一个事务要么成功(将结果写入数据库),要么失败(不对数据库有任何影响).这种方式在一个事务单打独斗的时候是一个非常好的做法,但 ...

  4. mysql事务传播属性_Spring事务传播属性和隔离级别详细介绍

    1 事务的传播属性(Propagation) 1) REQUIRED ,这个是默认的属性 Support a current transaction, create a new one if none ...

  5. spring 事务隔离级别和传播行为_Spring事务传播性与隔离性实战

    一.事务传播性 1.1 什么是事务的传播性 事务的传播性一般在事务嵌套时候使用,比如在事务A里面调用了另外一个使用事务的方法,那么这俩个事务是各自作为独立的事务执行提交,还是内层的事务合并到外层的事务 ...

  6. mysql的传播特性_spring事务传播特性和mysql事务隔离级别

    spring事务的传播特性--7种 REQUIRED 支持当前事务,如果没有事务会创建一个新的事务 SUPPORTS 支持当前事务,如果没有事务的话以非事务方式执行 MANDATORY(强制性) 支持 ...

  7. spring 事务隔离级别和传播行为_Spring事务的传播行为案例分析

    网上关于Spring事务传播性以及隔离型的文章漫天盖地,还有不负责任的直接复制名词意思,文章虽然很多却是看的云里雾里,我们今天将给出案例分别和大家一起学习. 1.spring给出经常面试的考点Spri ...

  8. zbb20180921 spring事物的七种事物传播属性行为及五种隔离级别

    spring事物的七种事物传播属性行为及五种隔离级别 事务,就是一组操作数据库的动作集合.事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事 ...

  9. 并发事务正确性的准则 可串行化_从0到1理解数据库事务(上):并发问题与隔离级别...

    最近准备写一篇关于Spanner事务的分享,所以先分享一些基础知识,涉及ACID.隔离级别.MVCC.锁,由于太长,只好拆分成上下两篇: 上:并发问题与隔离级别 主要讲事务所要解决的问题.思路,先理解 ...

最新文章

  1. springboot源码 红色J_通达信副图指标源码之,出手就赢
  2. html 行内超出隐藏,css如何设置文字不换行超出隐藏?
  3. mysql查询错误_一个奇怪的MySQL查询错误
  4. 快速上手Linux核心命令(二):关机、重启
  5. matlab中LMI工具箱函数feasp的用法
  6. leetcode 1446 连续字符
  7. 解决pycharm debug时 界面下方不出现step等按钮以及变量值的情况
  8. 10条思科文件管理命令帮你做到称职网管
  9. 正确安装vray5 for 3dsMax步骤
  10. 如何开机进测试内存软件,小U讲解内存检测工具memtest详细使用教程
  11. 新派重型混音教程|看了几年的混音教程,自己还是没有进步。(思想篇+技术篇+扫盲5个误区)|MZD Studios
  12. 【随笔】那些免费友好的遥感影像数据下载网站
  13. springBoot 修行之路1
  14. 台式机插上耳机,声音仍然外放问题解决
  15. 这只“鸭子不一般”科大讯飞申请“躺倒鸭”商标
  16. mysql中根据部门名称生成部门简称(根据某一列的关键字在另一列生成特定值)
  17. 关于Android Studio 模拟器“ANDROID SDK_ ROOT”的问题
  18. ubuntu1804搭建git服务器
  19. SpringMVC 数据绑定全面示例(复杂对象,数组等)
  20. 微信小程序页面跳转刷新方式

热门文章

  1. 如何开始 java core java
  2. sklearn 神经网络_机器学习100天-Day2404 循环神经网络RNN(预测时间序列)
  3. md5加密工具类_贼好用的 Java 工具类库! GitHub 星标 10k+,你在用吗?
  4. x86系统MySQL_deepin20.1系统安装MySQL8.0.23(最美国产Liunx系统,最新,最详细的MySQL8安装教程)...
  5. mysql c接口内存泄漏_MySQL C ++连接器内存泄漏
  6. python访问k8s的api_python过滤 Kubernetes api数据
  7. u盘序列号读取工具_硬盘读写工具
  8. 华为手机解锁码计算工具_一部华为手机解锁无数翻译,你浪费了此功能吗?
  9. 星露谷服务器一直没有空闲位置,星露谷物语小镇地图全npc住址位置 经验告诉你该这样...
  10. mysql伪表 dual_Oracle系列:(5)select子句