1. 首先,说说什么事务(Transaction)
事务,就是一组操作数据库的动作集合。事务是现代数据库理论中的核心概念之一。
如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。
当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。
由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚到最初的系统状态。

2. spring七个事务传播属性:
1.PROPAGATION_REQUIRED – 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

2.PROPAGATION_SUPPORTS – 支持当前事务,如果当前没有事务,就以非事务方式执行。

3.PROPAGATION_MANDATORY – 支持当前事务,如果当前没有事务,就抛出异常。

4.PROPAGATION_REQUIRES_NEW – 新建事务,如果当前存在事务,把当前事务挂起。

5.PROPAGATION_NOT_SUPPORTED – 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

6.PROPAGATION_NEVER – 以非事务方式执行,如果当前存在事务,则抛出异常。

7.PROPAGATION_NESTED – 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

备注:常用的两个事务传播属性是1和4,即PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEW

3. 五个隔离级别:
ISOLATION_DEFAULT 
这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.

另外四个与JDBC的隔离级别相对应;

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

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

ISOLATION_REPEATABLE_READ 
这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。 
它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)。

ISOLATION_SERIALIZABLE 
这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。 
除了防止脏读,不可重复读外,还避免了幻像读。

关键词: 
1)幻读:事务1读取记录时事务2增加了记录并提交,事务1再次读取时可以看到事务2新增的记录; 
2)不可重复读取:事务1读取记录时,事务2更新了记录并提交,事务1再次读取时可以看到事务2修改后的记录; 
3)脏读:事务1更新了记录,但没有提交,事务2读取了更新后的行,然后事务T1回滚,现在T2读取无效。

脏读:指一个事务读取了一个未提交事务的数据

不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同.一个事务读取到了另一个事务提交后的数据.

虚读(幻读):在一个事务内读取了别的事务插入的数据,导致前后读取不一致(insert)

框架:Spring事务的隔离级别相关推荐

  1. Spring事务的隔离级别

    事务的特性-ACID 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ...

  2. 事务隔离级别和传播行为_.spring的事务有几种方式?spring事务的隔离级别和传播行为是什么?...

    展开全部 Spring提供了许多内置事务管理器实现,常用的有: DataSourceTransactionManager(JDBC局部事务):62616964757a686964616fe59b9ee ...

  3. spring事务的隔离级别和传播特性详解(附实例)

    spring支持编程式事务管理和声明式事务管理两种方式. 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager.对于编程式事务 ...

  4. spring事务传播,隔离级别,

    数据库事务中的隔离级别和锁 数据库事务在后端开发中占非常重要的地位,如何确保数据读取的正确性.安全性也是我们需要研究的问题. ACID 首先总结一下数据库事务正确执行的四个要素(ACID): 原子性( ...

  5. Spring→事务、隔离级别、事务传播行为、编程式事务控制、XML配置声明式事务(原始方式)、XML配置声明式事务(基于tx/aop)、@注解配置声明式事务、优势总结

    事务 Spring事务管理 不考虑隔离引发问题 隔离级别 事务传播行为 演示环境搭建 编程式事务控制 XML配置声明式事务(原始方式) XML配置声明式事务(基于tx/aop) @注解配置声明式事务 ...

  6. oracle事物的传播属性,spring事务的隔离级别和传播属性

    /*** @author 王政* @date 2006-11-24* @note 转载自http://www.iteye.com/topic/35907?page=1*/ ********Transa ...

  7. 什么是事务? 事务的隔离级别和事务运行的模式分别是什么?spring 事务和分布式事务实现方式有哪些?

    目录 什么是事务? 事务的隔离级别: 事务运行的模式: spring 事务实现方式: 分布式事务实现方式: 什么是事务? 百度百科中解释:指作为单个逻辑工作单元执行的一系列操作,此操作是对数据库的操作 ...

  8. 带你读懂Spring 事务——事务的隔离级别(超详细,快藏)

    不了解事务的铁汁可以先看前两篇,讲的超详细,有问题还请您指点一二 带你读懂Spring 事务--认识事务 带你读懂Spring 事务--事务的传播机制(藏) 特别提示:本文所进行的实验都是在MySQL ...

  9. java事务不生效场景_事务的隔离级别、事务不生效的场景

    一.事务的隔离级别 1.读未提交Read Uncommited:事务还没提交的时候,修改的数据就让别的事务给读到了----脏读 2.读已提交Read Commited:事务A查询一个数据值是1,过了段 ...

最新文章

  1. CV06-Xception笔记
  2. 百度高层巨震!陆奇卸任COO,王海峰晋升高级副总裁
  3. python glob 模块 map函数
  4. HTML图片热区map area的用法(转)
  5. jenkins 配置使用
  6. IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl
  7. 用python实现复选框树_如何使用Python中的复选框创建树视图
  8. 虚函数(Virtual Function)与 纯虚函数(Pure Virtual Function)
  9. Oracle与MySQL性能比较
  10. Nodejs前端服务器压缩图片
  11. 运行bat批处理文件不出现黑框
  12. mybatis 添加语句返回对象_mybatis的insert语句插入数据时的返回值的实现
  13. 不要在给自己不学习找借口了,否则…
  14. 基于Flask开发网站--利用复选框进行批量操作
  15. Markdown案例
  16. 启动一个java项目http状态 500 - 内部服务器错误_给我 20 分钟,我教你快速掌握JavaWeb和Http...
  17. e0312 不存在用户定义的_更加灵活的参数校验,Spring-boot自定义参数校验注解
  18. WINDOWS平台上扩展SGA,把你的内存用起来吧
  19. android 弱网测试工具,app弱网测试及使用的工具
  20. 【数理逻辑四】谓词逻辑及形式系统 【中】

热门文章

  1. 两道关于JS的小考题(闭包与中间件)
  2. C# 数组与 list 互相转换案例
  3. Linux 进程、端口、IP、连接数等查询脚本
  4. 软链接和硬链接的解读
  5. C#通用类库--设置开机自运行禁用任务管理器注册表等操作
  6. 【C/C++】 读、写二进制文件经典实例
  7. 方程AX=b的解的讨论(特解、通解、零空间向量等概念)及其MATLAB实现
  8. 深度学习目标检测(YoloV5)项目——从0开始到项目落地部署
  9. java 线程的基本概念_Java多线程——多线程的基本概念和使用
  10. c语言 串口中断服务函数,GCC-AVR 编写中断服务函数的注意事项