关闭

Spring事务的隔离级别

标签: 事务隔离级别
155人阅读 评论(0) 收藏 举报
分类:

Spring事务的隔离级别
 1. ISOLATION_DEFAULT: 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应。

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

 3. ISOLATION_READ_COMMITTED: 保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。

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

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

什么是脏数据,脏读,不可重复读,幻觉读?

脏读: 指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据, 那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。

不可重复读: 指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
           
幻觉读: 指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

MySQL事务隔离级别和Spring事务关系介绍

事务隔离级别介绍 隔离级别 脏读 不可重复读 幻读 未提交读(Read uncommitted) 可能 可能 可能 ...
  • a837199685
  • a837199685
  • 2017-01-15 17:55
  • 3136

spring 事务-使用@Transactional 注解(事务隔离级别)

先看下@Transactional可以配制那些参数及以其所代表的意义。 isolation 枚举org.springframework.transaction.annotatio...
  • a317677438a
  • a317677438a
  • 2016-08-11 21:49
  • 6105

Spring事务配置及事务的传播性与隔离级别详解

Spring事务配置 通过注解配置 1.在Spring配置文件引入 <beans xmlns="http://www.springframework.org/schema/beans" xmlns...
  • v123411739
  • v123411739
  • 2016-03-10 15:37
  • 2913

Spring事务隔离级别.doc

  • 2015-09-18 13:56
  • 26KB
  • 下载

spring 事务传播与隔离级别DEMO

  • 2012-05-03 12:28
  • 18KB
  • 下载

Spring事务的传播特性和隔离级别

  • 2017-10-31 16:14
  • 16KB
  • 下载

SPRING事务传播特性&amp;事务隔离级别

  • 2012-08-24 17:59
  • 46KB
  • 下载

spring事务的传播行为与隔离级别

在实际开发过程中,特别是在并发高、更新数据量大、关系表比较多的情况下,经常会遇到关于事务的问题。 首先,要了解的是什么是数据库的隔离级别。在一个典型的应用中,并发是不可避免的,多个事务并发运行,操作...
  • moliqin
  • moliqin
  • 2011-10-22 23:20
  • 6523

Spring 管理事务(传播特性、隔离级别、readonly)

一、事务传播机制(Propagation ) 1、spring使用动态代理来为某个方法自动添加事务,而代理应该给哪个方法增加事务行为,是有传播机制决定的。下面看有哪些属性:   1)REQ...
  • liuxiao723846
  • liuxiao723846
  • 2016-07-03 23:50
  • 3082

谈谈Spring 中事务的隔离级别

PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。如果把事务的传播级别设为REQUIRES_NEW,有可能会造成事物的不一致性。 需求:ServiceA...
  • myxx520
  • myxx520
  • 2011-09-21 22:20
  • 892
    个人资料
    • 访问:271209次
    • 积分:4625
    • 等级:
    • 排名:第7340名
    • 原创:168篇
    • 转载:250篇
    • 译文:5篇
    • 评论:30条
    最新评论