- 浏览: 184020 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (361)
- MySQL (27)
- dubbo (1)
- 网页模板 (3)
- 微信公众号 (6)
- Web工具 (7)
- Java (46)
- CSS (6)
- SQL (2)
- 数据库 (2)
- 其他 (12)
- Oracle (9)
- Tomcat (15)
- 技巧 (3)
- 基础 (4)
- 工作流 (1)
- js (25)
- maven (9)
- 异常问题 (1)
- 新知识 (5)
- PS (11)
- bootstrap (1)
- 开源框架 (5)
- 计算机网络 (1)
- MongoDB (1)
- HTML (3)
- sqlite (1)
- 微信 (3)
- Web组件 (4)
- jquery (1)
- hadoop (1)
- Redis (1)
- A_Windows常用快捷键 (3)
- eclipse (10)
- jetty (1)
- RESTEasy (1)
- Jersey (1)
- SVN (2)
- ubuntu (6)
- zookeeper (1)
- SpringMVC (7)
- 手册 (1)
- Apache ant (5)
- JBPM (1)
- activiti (3)
- Solr (1)
- EJB (1)
- 图片素材 (2)
- JSF (1)
- jboss (3)
- Android (32)
- WeX5 (1)
- 百度地图 (1)
- 电路设计 (1)
- excel (2)
- Web服务器应用服务器 (1)
- CXF (1)
- github (4)
- C# (1)
- Shiro (1)
- Lucene (1)
- Quartz (1)
- Linux (5)
- Smart Framework (1)
- JPA (6)
- 微信JS-SDK (1)
- RESTful (1)
- springboot (1)
- 文章 (2)
- springcloud (1)
- Eureka (1)
- drools (1)
- hibernate (3)
- IIC (1)
- 不错的博客 (1)
- 电脑操作系统问题 (1)
- JVM (1)
- excel操作工具 (0)
- 报表工具 (1)
- mail (1)
- apache (2)
- nginx (2)
- UML (1)
- 原型设计 (1)
- 消息队列框架 (1)
- DataTables (1)
- Mybatis (1)
- JFINAL (1)
- layer (1)
- MariaDB (1)
- NPM (1)
- LOG4J (2)
- 未知 (2)
- 正则表达式 (1)
最新评论
rollback-for 属性配置事务的回滚策略
默认的回滚策略:
任何RuntimeException将触发事务回滚,但是任何checked Exception将不触发事务回滚。
rollback-for="java.lang.Exception"
一切继承与java.lang.Exception的异常将会引发事务回滚。
*service中的异常。发生回滚的前提是service层抛出异常,try catch 的异常发生不会引发事务回滚。
只读事务:在执行多条sql语句看到执行前点的数据状态,保证数据一致性。
Oracle默认情况下(没有事务) 保证了SQL语句级别的读一致性,即在一条SQL语句执行期间,它只会看到执行前点的数据状态,而不会看到执行期间数据被其他SQL改变的状态。
所以如果执行多条SQL的时候呢?比如你做一个报表查询,在执行完第一条sql的时候,执行第二条查询SQL,而这个之间有数据被改变了,第二条数据查询就有可能不一致。
而Oracle的只读查询则保证了事务级别的读一致性,即在该事务范围内执行的多条SQL都只会看到执行前点的数据状态,而不会看到事务期间的任何被其他 SQL改变的状态。
没有事务的时候,在执行一条sql语句看到执行前点的数据状态,保证数据一致性
参考文档:http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html
默认的回滚策略:
任何RuntimeException将触发事务回滚,但是任何checked Exception将不触发事务回滚。
rollback-for="java.lang.Exception"
一切继承与java.lang.Exception的异常将会引发事务回滚。
*service中的异常。发生回滚的前提是service层抛出异常,try catch 的异常发生不会引发事务回滚。
只读事务:在执行多条sql语句看到执行前点的数据状态,保证数据一致性。
Oracle默认情况下(没有事务) 保证了SQL语句级别的读一致性,即在一条SQL语句执行期间,它只会看到执行前点的数据状态,而不会看到执行期间数据被其他SQL改变的状态。
所以如果执行多条SQL的时候呢?比如你做一个报表查询,在执行完第一条sql的时候,执行第二条查询SQL,而这个之间有数据被改变了,第二条数据查询就有可能不一致。
而Oracle的只读查询则保证了事务级别的读一致性,即在该事务范围内执行的多条SQL都只会看到执行前点的数据状态,而不会看到事务期间的任何被其他 SQL改变的状态。
没有事务的时候,在执行一条sql语句看到执行前点的数据状态,保证数据一致性
参考文档:http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html
发表评论
-
跨域问题:解决跨域的三种方案
2018-01-22 13:37 638https://www.cnblogs.com/itmacy ... -
设置工程环境变量动态读取资源文件
2018-01-15 14:51 404http://blog.csdn.net/peaceforev ... -
Java读取资源文件的5种方法
2017-08-31 16:53 502https://www.cnblogs.com/EasonJi ... -
Hibernate 执行原始SQL语句
2017-08-29 17:32 353http://blog.csdn.net/xumengxing ... -
Java中执行存储过程和函数
2017-08-29 17:30 901http://www.cnblogs.com/Zengc-33 ... -
java实现给图片添加水印
2017-08-29 13:36 1619http://blog.csdn.net/zengshunya ... -
J2EE
2017-07-20 23:42 344现在就知道J2EE是做什么的了吧 首先java它对开发基于We ... -
HttpClient JSON参数请求
2017-05-26 16:36 434https://www.iteblog.com/archive ... -
HttpClient设置超时、中文乱码
2017-05-25 14:43 339HttpClient设置超时 http://blog.csdn ... -
阿里巴巴的FastJSON解析JSON例子,超级好用。
2017-05-05 09:40 1420http://blog.csdn.net/dwzjs/art ... -
java获取当前路径的几种方法
2017-04-26 10:36 3801、利用System.getProperty()函数获取当前路 ... -
Java中如何遍历Map对象的4种方法
2017-04-26 09:15 341http://blog.csdn.net/tjcyjd/art ... -
JDK、JRE、JVM三者间的关系
2017-04-24 09:04 527JDK、JRE、JVM三者间的关系 http://pla ... -
JVM性能调优
2017-04-24 08:59 373JVM性能调优 http://www.zuidaima.com ... -
基于springMVC+springSecurity3.x+Mybaits3.x的权限系统
2017-04-21 16:58 399http://www.open-open.com/lib/vi ... -
JVM的内部组成
2017-04-11 11:02 367http://blog.csdn.net/wuwenxiang ... -
Lombok
2017-04-11 10:49 366在写Java程序的时候经常会遇到如下情形: 新建了一个Cla ... -
Java 8新特性
2017-04-10 15:39 297Java 8新特性终极指南 JDK8 十大新特性详 ... -
Java 7 新的 try-with-resources 语句,自动资源释放
2017-04-10 15:05 357http://blog.csdn.net/lzm ... -
JDK1.7的新特性
2017-04-10 14:15 409JDK1.7的新特性 http://blog.csdn.net ...
相关推荐
- `@Transactional`注解:这是Spring提供的声明式事务管理方式,可以标记在类或方法级别。当方法运行时,Spring会自动开启、提交或回滚事务。如果方法抛出未检查异常(继承自`RuntimeException`的异常)或者`Error`...
相较于编程式事务管理,声明式事务处理更加简洁、易于维护,它将事务管理与业务逻辑解耦,使开发者可以专注于业务代码的编写。 声明式事务处理的核心在于XML配置或注解方式来定义事务的边界。在Spring框架中,主要...
Spring框架的声明式事务处理是Java企业级应用中不可或缺的一部分,它为开发者提供了一种方便、高效的方式来管理事务。在Spring中,事务管理分为编程式和声明式两种方式,而声明式事务处理则是通过配置来控制事务的...
本篇文章将深入探讨Spring中的两种主要事务管理方式:编程式事务管理和声明式事务管理。 1. 编程式事务管理: 编程式事务管理允许开发者直接在代码中控制事务的开始、提交、回滚等操作。这种方式具有较高的灵活性,...
在Spring框架中,声明式事务管理是实现事务处理的一种高效且灵活的方式,它允许开发者通过XML配置或注解来定义事务边界,而无需在业务逻辑代码中显式地调用开始、提交或回滚事务的方法。这篇博文"Spring使用XML配置...
标签"声明式事务"表明我们将重点讨论的是Spring的声明式事务管理。在Spring中,声明式事务主要通过AOP(面向切面编程)实现,它允许我们在不修改业务代码的情况下,通过XML配置或Java配置,以及注解来控制事务的...
本教程将深入探讨如何在Spring中实现自定义事务管理器、编程式事务处理以及声明式事务`@Transactional`的使用。 首先,让我们了解事务管理的基本概念。事务是一组数据库操作,这些操作要么全部执行,要么全部回滚,...
本资料包“09-5基于注解方式的声明式事务.rar”聚焦于Spring框架中如何使用注解来实现声明式事务管理,这是一种简化事务处理、提高代码可读性和可维护性的方法。在这里,我们将深入探讨相关知识点。 1. **什么是...
本教程将深入探讨Spring声明式事务以及如何通过XML配置来管理事务。声明式事务是Spring框架的一大亮点,它允许开发者无需在业务代码中显式处理事务,而是通过配置来控制事务的边界。 首先,我们要理解什么是事务。...
5. **回滚规则**:在声明式事务管理中,可以通过`<tx:method>`的`no-rollback-for`和`rollback-for`属性定义哪些异常应该触发事务回滚,哪些异常不应触发回滚。 通过Spring.NET的事务管理,我们可以编写出更健壮、...
本文主要探讨Spring声明式事务管理的配置,这是Spring提供的一种简便的事务管理方式,允许开发者在不编写任何事务管理代码的情况下实现事务控制。这种方式极大地提高了代码的可维护性和可读性。 首先,我们要理解...
在实际开发中,声明式事务管理具有很多优势,例如代码简洁、事务管理与业务代码分离,使得事务策略易于调整和测试。但同时,由于事务的控制权交给了Spring,对于某些特定的事务控制需求,声明式事务可能不够灵活。 ...
Spring声明式事务是Java开发中不可或缺的一部分,它利用Spring的AOP(面向切面编程)和代理机制,为开发者提供了一种简洁的方式来管理事务。在本文中,我们将深入探讨Spring声明式事务的工作原理,源码分析,以及...
本篇文章将深入探讨Spring的事务管理,特别是声明式事务管理。 ### 1. 事务管理概述 事务是一组数据库操作,这些操作被视为一个单元,要么全部成功,要么全部失败。在Java世界中,事务管理通常遵循ACID(原子性、...
Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。本篇文章将重点探讨基于注解和XML配置的声明式事务管理。 ### 声明式事务管理 声明式事务管理是Spring中非常受欢迎的特性,因为它允许...
声明式事务管理是Spring中最常用的方式,它将事务管理与业务代码解耦,通过AOP(面向切面编程)实现。有以下两种主要形式: - **基于XML的声明式事务管理** 在Spring的配置文件中,通过`<tx:advice>`定义事务...
Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。 1. **编程式事务管理**:这是通过调用PlatformTransactionManager接口提供的方法来手动管理事务。虽然这种方式提供了最大的灵活性,但正如...
总的来说,Spring事务管理通过其强大的声明式事务处理能力和对各种事务策略的支持,使得开发者能够轻松地在应用程序中实现高效、一致的事务处理。通过理解并合理运用上述知识点,开发者可以构建出稳定、健壮的分布式...
3. 基于AOP的XML配置事务管理:这种方式与上述声明式事务管理类似,只是更具体地利用了Spring的面向切面编程(AOP)。通过定义切入点表达式匹配需要进行事务管理的方法,并将其与事务处理策略关联。 在SpringMVC...
在Spring框架中,事务管理分为编程式事务管理和声明式事务管理两种方式。 1. **编程式事务管理**:这种管理方式要求开发者手动编写代码来开启、提交、回滚事务。虽然具有更高的灵活性,但可能导致代码的复杂性增加...