事务的传播性和隔离级别

事务的传播性:
1、PROPOGATION_REQUIRES            --需要在一个事务中执行
2、PROPOGATION_SUPPOTS             --不需要在一个事务中执行,如果有事务,也可以执行
3   PROPOGATION_NOT_SUPPORTED --不支持在一个事务中执行,如果在一个正在运行的事务中执行,则会被挂起

5   PROPOGATION_NEVER                  --必须不在一个正在运行的事务中执行,则会抛出异常
6   PROPOGATION_MANDATORY        --必须在一个正在运行的事务中执行,否则抛出异常
7   PROPOGATION_NEW                      --如果有一个事务正在执行,则挂起该事务,重开一个事务

4   PROPOGATION_NESTED                --如果有一个事务a正在进行中,该事务被嵌套在a中

事务的隔离级别:

1、ISOLATION_DEFAULT  默认,3 ,也就是可重复读

2、ISOLATION_READ_UNCOMMITED  ,读未提交,会引起不可重复读、脏读、幻读

3、ISOLATION_READ_COMMITED,读已提交,避免脏读,但仍然会有不可重复读、幻读

4、ISOLATION_READ_REPEATED,可重复读,避免脏读、不可重复读,仍然有幻读

5、ISOLATION_SEARILIZE ,序列化

脏读:读取了未提交的数据a,然后a在事务中回滚了

不可重复读:读取一个数据,前后不一致,这个是因为其他事务修改了该数据

幻读:用一条sql,查询数据,第二次查询到的数据的数量和第一次查询到的数量不同

mysql 的默认的隔离级别是:可重复读

oracle、sqlserver 的默认隔离级别是:读已提交

原文地址:https://www.cnblogs.com/drafire/p/10661395.html

时间: 2024-10-12 08:30:02

事务的传播性和隔离级别的相关文章

spring 中常用的两种事务配置方式以及事务的传播性、隔离级别

转载:http://blog.csdn.net/qh_java/article/details/51811533 一.注解式事务 1.注解式事务在平时的开发中使用的挺多,工作的两个公司中看到很多项目使用了这种方式,下面看看具体的配置demo. 2.事务配置实例 (1).spring+mybatis 事务配置 [html] view plain copy <!-- 定义事务管理器 --> <bean id="transactionManager" class="

事务的传播行为和隔离级别

事务使用步骤如下: 步骤一.在spring配置文件中引入<tx:>命名空间 <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaL

事务的传播行为,隔离级别以及锁机制

脏读,不可重复读和幻读. 脏读:读到未提交(uncommited)的数据 不可重复读:多次查询中(提交插入数据的事务) 幻读:在修改事务后(提交了一个添加的事务),之后查询数据以为出现幻觉 事务的隔离级别: read_uncommitted 最低的隔离级别 有脏读,不可重复读和幻读. read_committed 看到已提交的数据 存在不可重复读和幻像读. 支持sqlsever repeatable_read 存在幻读 .支持mysql serializable 防止脏读,不可重复读外,还避免了

spring事务传播性与隔离级别

事务的7种传播级别: 1)PROPAGATION_REQUIRED:支持当前事务,没有事务就新建一个. 2)PROPAGATION_SUPPORTS:支持当前事务,如果没有事务,以非事务方式处理 3)PROPAGATION_MANDATORY:支持当前事务,没有事务就抛异常 4)PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起 5)PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,有事务则挂起 6)PROPAGATION_NEV

数据库的特性与隔离级别和spring事务的传播机制和隔离级别

首先数据库的特性就是 ACID: Atomicity 原子性:所有事务是一个整体,要么全部成功,要么失败 Consistency 一致性:在事务开始和结束前,要保持一致性状态 Isolation 隔离性: 对于同一个表的操作,每个事务都是单独的,不会影响其他事务. Durability 持久性: 事务一旦提交,数据库中的数据就是永久的了. 对于以上四种特性中的隔离性,不同的策略会有不同的弊端:脏读,不可重复读,幻读. 脏读: 就是一个事务读取了别的事务执行过程中未提交的数据. 不可重复读: 就是

Spring事务:传播行为与隔离级别

文章主要来源:https://github.com/dengdaiyemanren/onetopiconeday/wiki/spring%E4%BA%8B%E5%8A%A1%E9%85%8D%E7%BD%AE 传播行为 在TransactionDefinition接口中定义了七个事务传播行为:PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择.PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行.PR

spring的事务、传播属性和隔离级别

spring传播属性 PROPAGATION_REQUIRED:该方法必须运行在一个事务中.如果一个事务正在运行,该方法将运行在这个事务中.否则,就开始一个新的事务. Spring事务的隔离级别 1. ISOLATION_DEFAULT: 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别. 另外四个与JDBC的隔离级别相对应 2. ISOLATION_READ_UNCOMMITTED: 这是事务最低的隔离级别,它充许令外一个事务可以看到这个

Spring事务的传播行为和隔离级别

1.事务的传播行为 事务的使用过程中,用的最多的传播行为是require,在大部分的mis系统里,可以对整个业务层切一个require的事务就可以满足需要. 但spring提供的不仅如此,对于复杂的业务,Spring也提供了相应的事务传播行为来满足业务需要. Spring中的传播行为如下: Require:支持当前事务,如果没有事务,就建一个新的,这是最常见的: Supports:支持当前事务,如果当前没有事务,就以非事务方式执行: Mandatory:支持当前事务,如果当前没有事务,就抛出异常

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

事务的几种传播特性1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务.如果没有事务则开启2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务.如果没有事务,则非事务的执行3. PROPAGATION_MANDATORY: 如果已经存在一个事务,支持当前事务.如果没有一个活动的事务,则抛出异常.4. PROPAGATION_REQUIRES_NEW: 总是开启一个新的事务.如果一个事务已经存在,则将这个存在的事务挂起.5. PROPAGA