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

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

其中spring七个事物传播属性:
 PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
 PROPAGATION_SUPPORTS -- 支持当前事务,如果当前没有事务,就以非事务方式执行。
 PROPAGATION_MANDATORY -- 支持当前事务,如果当前没有事务,就抛出异常。
 PROPAGATION_REQUIRES_NEW -- 新建事务,如果当前存在事务,把当前事务挂起。
 PROPAGATION_NOT_SUPPORTED -- 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
 PROPAGATION_NEVER -- 以非事务方式执行,如果当前存在事务,则抛出异常。
 PROPAGATION_NESTED -- 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,
则进行与PROPAGATION_REQUIRED类似的操作。

五个隔离级别:
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读取无效。

转载于:https://www.cnblogs.com/super-admin/p/9687004.html

zbb20180921 spring事物的七种事物传播属性行为及五种隔离级别相关推荐

  1. 事务默认的传播属性和事务默认的隔离级别

    事务的传播属性 事务的隔离级别,用的就是当前数据的隔离级别

  2. matlab fx函数图像,五种常用小波基含MATLAB实现 五种基本函数图像

    五种基本函数图像 1.给出五种常用小波基的时域和频域波形图. 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数(t) 具有多样性.小波分析在工程应用中,一个十分重要的问题就 ...

  3. Spring事务的处理流程、传播属性、及部分释疑

    目录 文章目录 一.spring事务利用AOP的拦截和处理流程 必须记住的两个要点 二.事务传播属性 三.为什么很多Exception异常必须配置在rollback-for中才有用 四.事务的传播性在 ...

  4. redis五种数据类型的应用场景_Redis五种不同的数据类型

    一.redis集群测试环境搭建 参考文章:https://www.jianshu.com/p/0a2f8f80983a redis-cli -c -h 10.96.87.129 -p 7001注意:- ...

  5. 计算机网络有哪几种拓补结构,常见的五种计算机网络拓扑结构分析

    第十期安防弱电资料包内容 后台有朋友问到计算机的拓扑结构,今天我们就来看下几种常见的计算机网络结构. 拓扑结构一般指点和线的几何排列或组成的几何图形. 计算机网络的拓扑结构是指一个网络的通信链路和结点 ...

  6. html5常见使用的属性,HTML5常见五种常规全局属性

    HTML5中有很多的属性,新增了一个HTML中没有的属性:全局属性. 接下来一起看HTML5常见五种常规全局属性. contentEditable属性 contentEditable是由微软开发.被其 ...

  7. 你了解过Spring支持的常用数据库事务传播属性和隔离级别吗?来一起看看吧!!!

    上次偶然间看到这个知识点,发现自己有所欠缺,就来进行查漏补缺,没法实在是卷的厉害啊.

  8. linux下的五种io模型,Linux下的五种IO模型

    Java中提供的IO有关的API,在文件处理的时候,其实依赖操作系统层面的IO操作实现的(关于Java对IO的三种封装,可见我的另一篇博客) 开门见山,Linux下的如中IO模型:阻塞IO模型,非阻塞 ...

  9. 用python的五种方式_Python模块重载的五种方法

    环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ tree foo foo └── bar.py 0 directories, 1 file bar.py 的内容非常简单,只写 ...

最新文章

  1. 每天60万人次在连接风险WiFi 有你吗
  2. Jconsole远程监控tomcat 的JVM内存(linux、windows)
  3. HTTP Status 400
  4. 解读MySQL的慢日志
  5. Java的多线程问题追根溯源。
  6. 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。
  7. 小人大作战v0.02原型(单机)发布
  8. linux密码暴力破解之SHA-512破解
  9. Mac python Tesseract 验证码识别
  10. mysql cleaned up_MySQL数据库无法启动的简单排错
  11. vim - multiple windows
  12. 多线程bug处理记录
  13. php魔法函数用途,PHP中的Magic Methods (魔术函数)
  14. php网址图片怎么转based4,Ionic4 Base64 转化成图片插件-Base64 转化成图片Base64 To Gallery - Ionic Native...
  15. DSP与FPGA的SRIO通信实现
  16. Web漏洞之CORS与JSONP跨域漏洞
  17. GIT 使用之 SSH 以及码云上配置 SSH
  18. 2012蓝桥杯【初赛试题】手机尾号
  19. 2021-7-19-OpenStack基础知识学习
  20. 数据仓库历史数据存储-拉链表

热门文章

  1. MySQL备份和还原操作
  2. 判断浏览器类型及是否能使用ES6部分特性
  3. java后端概述_项目概述
  4. wince下SD卡驱动开发
  5. 云原生|Qunar 云原生容器化落地实践
  6. 入门前端框架Layui
  7. 基于C语言编写的超市管理系统
  8. oracle 多表导出,oracle多表导出dmp
  9. Linux——从命令行配置网络、编辑网络配置文件
  10. java 读写 wps xlsx 文件