- 浏览: 57563 次
- 来自: 北京
最新评论
-
泛泛evil:
总结的很好,谢谢分享
JavaScript -
wanxkl:
哇!总结的太好了。。凤哥哥,你好强大啊。。请问您跟凤姐什么关系 ...
css应用
事务传播特性了解事务的几种传播特性
|
数据库操作1 |
数据库操作2 |
PROPAGATION_REQUIRED |
Transaction1 |
Transaction1 |
null |
Transaction2 |
|
PROPAGATION_SUPPORTS |
Transaction1 |
Transaction1 |
null |
null |
|
PROPAGATION_MANDATORY
|
Transaction1 |
Transaction1 |
null |
Throws Exception |
|
PROPAGATION_REQUIRES_NEW
|
Transaction1 |
Transaction2 |
null |
Transaction2 |
|
PROPAGATION_NOT_SUPPORTED
|
Transaction1 |
null |
null |
null |
|
PROPAGATION_NEVER
|
Transaction1 |
Throws Exception |
null |
null |
|
PROPAGATION_NESTED(Spring)
|
Transaction1 |
Transaction2 [Transaction1] |
null |
Transaction2 |
1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启
2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行
3. PROPAGATION_MANDATORY: 如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。
4. PROPAGATION_REQUIRES_NEW: 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
5. PROPAGATION_NOT_SUPPORTED: 总是非事务地执行,并挂起任何存在的事务。
6. PROPAGATION_NEVER: 总是非事务地执行,如果存在一个活动事务,则抛出异常
7. PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务,
则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行
事务隔离级别
|
脏读 |
不可重复读 |
幻象读 |
ISOLATION_READ_UNCOMMITTED |
√ |
√ |
√ |
ISOLATION_READ_COMMITTED |
|
√ |
√ |
ISOLATION_REPEATABLE_READ |
|
|
√ |
ISOLATION_SERIALIZABLE |
|
|
|
ISOLATION_DEFAULT |
PlatfromTransactionManager 默认的隔离级别 SQLServer :READ_COMMITTED MySql:REPEATABLE_READ |
Spring事务的隔离级别
1. ISOLATION_DEFAULT: 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.
另外四个与JDBC的隔离级别相对应
2. ISOLATION_READ_UNCOMMITTED: 这是事务最低的隔离级别,它充许令外一个事务可以看到这个事务未提交的数据。
这种隔离级别会产生脏读,不可重复读和幻像读。
3. ISOLATION_READ_COMMITTED: 保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据
4. ISOLATION_REPEATABLE_READ: 这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。
5. ISOLATION_SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。
除了防止脏读,不可重复读外,还避免了幻像读。
脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
不可重复读是 指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修 改,那么第一个事务两次读到的的数据可能是不一样的。
幻觉读是 指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的 数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
发表评论
-
lucene3.0 例一
2012-09-11 20:18 655package com.lucene;import java. ... -
lucene3.0
2012-09-11 20:15 872全文搜索 核心:创建索引——查询索引--分词器 索引引擎: ... -
分布式存储(转载)
2012-06-05 15:42 1206L1、HTML静态化其实大家都知道,效率最高、消耗最小的 ... -
java设计原则
2012-04-05 16:50 832原则1:DRY(Don't repeat ... -
java静态、动态代理
2012-04-04 18:51 851JAVA的动态代理 代理模式 代理模式是常用的java设计模式 ... -
Hibernate声明事务
2011-09-17 16:25 899事务处理 第一种方式: 首先配置datasoure: ... -
javascript应用3
2011-09-10 15:14 956打开一个新页面:{ <script t ... -
javascript应用2
2011-09-10 15:09 898日期插件的应用:{ <script type=& ... -
javascript应用1
2011-09-10 15:00 974javascript {<!-- 1.j ... -
css应用
2011-09-10 14:59 902CSS 本章目标 1、CSS的定义、优势 2、css的基 ... -
Html
2011-09-10 14:56 927HTML 超链接:{ <a href=”http:/ ... -
jsp、el、jstl.doc
2011-09-10 14:53 1344serlvet和jsp区别和联系 jsp从本质上讲也是s ... -
Jdbc
2011-09-10 14:49 932jdbc操作数据库插入、更新、删除、查找 mysql数据 ... -
文件上传步骤
2011-09-10 14:47 767文件上传的简单方法:(原理性的实验) 1. <b ... -
中文乱码问题解决
2011-09-10 14:43 7541. post方式提交的数据 采用request.setCha ... -
监听器
2011-09-10 14:36 898监听器概述 1.Listener是Servlet的监听器 ... -
过滤器
2011-09-10 14:35 12501. Servlet过滤器基础 Servlet过滤器是Se ... -
web编程常用配置2
2011-09-10 14:35 719c3p0.jar:C3PO是一个数据库连接池,Hibern ... -
web编程常用配置1
2011-09-10 14:33 987mysql数据库jdbc驱动 jdbcDriver = co ... -
sql练习
2011-09-10 14:28 22711.oracle数据库启动的服 ...
相关推荐
让我们深入了解一下这两个类以及它们如何处理事务传播特性和隔离级别。 首先,HibernateTemplate是Spring对Hibernate原生Session的一个包装,它提供了一种更安全、方便的方式来执行常见的Hibernate操作。与直接使用...
事务传播特性&事务隔离级别 事务传播特性是指在 Java 中,事务的传播行为,即在多个事务之间如何交互和传播。Java 中有七种事务传播特性,分别是: 1. PROPAGATION_REQUIRED:如果存在一个事务,则支持当前事务。...
### Spring 事务传播特性和事务隔离级别详解 #### 一、Spring 事务传播特性 在进行多层服务架构设计时,事务的管理尤其重要。为了确保数据的一致性,Spring 提供了一种灵活的方式来控制事务的传播行为。下面详细...
最后,我们提到的是**事务的传播特性**,这是Spring框架中的一种概念,它定义了在一个事务上下文中如何执行另一个方法。例如: - **Not Supported**:不支持事务,如果当前有事务,会挂起事务。 - **Supports**:...
Spring提供了七种事务传播特性,每一种都有其特定的场景适用性。 1. **PROPAGATION_REQUIRED** - 这是最常用的传播行为。当使用此传播行为时,如果当前存在事务,则在该事务中执行;如果没有,则创建一个新的事务...
Spring框架提供了多种事务传播特性,用于控制事务在方法调用之间的传播方式。这些传播特性定义了当一个事务方法调用另一个事务方法时的行为: 1. **Propagation_Required**:如果当前存在事务,则继续使用该事务;...
本知识点将深入探讨Spring中的事务管理,主要包括事务的传播特性、隔离级别以及readonly属性。 1. 事务的传播特性: 在Spring中,事务的传播特性定义了在一个事务方法被另一个事务方法调用时,应该如何处理事务...
Spring通过`@Transactional`注解可以方便地设置事务传播行为和隔离级别,例如: ```java @Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED) public void ...
事务传播特性和隔离级别是Java应用程序中事务管理的关键概念。通过合理配置这些特性,可以有效地管理和控制事务行为,确保数据的一致性和完整性。在实际应用中,开发者需要根据具体的需求选择合适的传播行为和隔离...
Spring 框架提供了一套完善的事务管理机制,其中包含了多种事务传播属性和事务隔离级别。这些特性使得在处理数据库操作时,能够更好地控制事务的边界和行为,从而确保数据的一致性和完整性。 首先,我们来看一下...
Java面试题54.Spring事务的传播特性和隔离级别.mp4
### 事务的传播行为 事务传播行为定义了当方法被另一个带有事务属性的方法调用时,该方法如何处理事务。Spring 提供了多种不同的...在实际开发过程中,应根据业务需求和系统特性灵活选择合适的传播行为和隔离级别。
java面试宝典
本资料主要探讨的是Spring支持的数据库事务传播属性和事务隔离级别。 一、事务传播属性 1. REQUIRED(默认):如果当前存在事务,则加入该事务;如果没有事务,则创建一个新的事务。这是最常见的事务定义,适用于...
而Spring_Hibernate_2可能涉及具体事务传播特性的实例代码或者进一步的事务控制策略,如回滚规则和隔离级别设置。 在实际开发中,合理地利用Spring的事务管理和传播特性,能够有效地提高代码的可维护性和系统的稳定...
### Spring 事务隔离和传播机制详解 #### 一、Spring 事务传播机制 Spring 的事务管理功能非常强大,其中一个重要特性...在实际开发中,选择合适的事务传播行为和隔离级别对于保证数据一致性、避免并发问题至关重要。
总之,“spring 事务传播 demo”将展示如何利用Spring的事务传播特性来处理复杂的业务场景,帮助开发者更好地理解和运用这一强大的工具。通过学习和实践这个示例,你将能够掌握在多层方法调用中如何优雅地管理和协调...
Spring声明式数据库事务的使用,特别是隔离级别,是确保数据一致性与并发控制的关键技术。在高并发的互联网环境中,如商品库存管理,多个线程同时处理数据可能导致数据不一致,出现丢失更新问题。为此,数据库引入了...
除了隔离级别外,`@Transactional`还提供了其他属性,如`propagation`(事务传播行为),`rollbackFor`(指定哪些异常会导致回滚)和`noRollbackFor`(指定哪些异常不会导致回滚)等,这些属性共同构建了事务的完整...
### Spring 事务传播属性详解 #### 一、Spring 事务基础概述 在深入探讨Spring框架中的事务传播属性...此外,需要注意的是,在实际开发中,还应结合事务的隔离级别、读写锁等其他高级特性来进一步优化事务管理策略。