Spring提供了一致的事务管理抽象。这个抽象是Spring最重要的抽象之一, 它有如下的优点:
1.为不同的事务API提供一致的编程模型,如JTA、JDBC、Hibernate、iBATIS数据库层 和JDO
2.提供比大多数事务API更简单的,易于使用的编程式事务管理API
3.整合Spring数据访问抽象
4.支持Spring声明式事务管理
环境:eclipse3.0,JDK1.4,spring1.2.3,mysql
程序主体代码如下:
配置文件:
<ccid_code></ccid_code><?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> </bean> |
业务类:
<ccid_code></ccid_code> |
测试类:
<ccid_code></ccid_code> |
因为使用的数据库是mysql,所以建立表的时候要指定INNODB,来支持事务!
CREATE TABLE room1 (
ROOM_ID varchar(10),
ADDRESS varchar(32),
PRIMARY KEY (ROOM_ID)
) TYPE=INNODB;
执行这段代码之后,控制台抛出错误,查询数据库,发现事务没有回滚,为什么呢??
首先要了解spring处理事务的本质,只有当程序抛出一个RuntimeException-->DataAccessException是spring才会捕获他,并且进行事务的处理!
我们将上面的业务类修改一下,使用spring封装的JDBCTemplate
JdbcTemplate jt = new JdbcTemplate(dataSource);
jt.update("insert into room1 (room_id,address) values ('1','dalian')");
jt.update("insert into room1 (room_id,address) values ('1','dalian')");
重新运行代码,发现数据库成功回滚!但是spring的template虽然很方便,但是对JDBC的支持还是不够完善,所以很多人还是喜欢用原生的JDBC来操作数据库,根据spring对事务操作的特点,我们对程序中抛出的SQLException坐一下改造
<ccid_code></ccid_code> |
然后修改配置文件
<prop key="insertOne">PROPAGATION_REQUIRED,-MyUncheckException</prop>
添加的-MyUncheckException指定如果方法抛出MyUncheckException或它的子类,事务将 会自动回滚。可以用逗号分隔定义多个回滚规则。-前缀强制回滚,+前缀指定提 交
重新运行代码,成功!!
发表评论
-
db2, oracle和sqlserver取前几行的语法
2010-10-18 11:58 940db2: select * from tab f ... -
项目总结(Ajax+Struts+Spring+Hiberante+SQLServer2000) 第一部分 (转载)
2008-03-29 16:49 675总算将一个项目勉强上线,也是第一次我独立完成的这么多任务,框架 ... -
实例学习Spring和Hibernate的一点点体会 (转载)
2008-03-29 17:36 785昨天用Spring写DAO,有朋友说比较Hibernate还是 ... -
jsp+xsl查询数据库
2008-04-06 19:26 1028往往JSP通常用来动态的生成HTML文件,来 ... -
hibernate3.0中文查询问题解决方法
2008-04-07 13:08 736在applicationContext.xml中加入如下代码: ... -
简单的JSTL应用(入门)
2008-04-07 19:51 1014需要的包及TLD文件: 首先需要将用到的jar包放入WEB-I ... -
EL表达式语言
2008-04-09 00:30 692引用:http://blog.163.com/s_zhchlu ... -
使用COOKIE登录验证(转载)
2008-04-21 20:11 1518附加功能:登录成功后 ... -
JavaMail
2008-04-30 13:19 649package org.hank.mail;import ... -
用"window.showModalDialog()"实现DIV模式弹出窗口 (转)
2008-05-04 09:20 17731、test.html 测试页 <html> ... -
以二进制流的方式存取图像
2008-05-07 00:03 1235imageinfo.sql CREATE TABLE ... -
java 生成图片缩略图
2008-05-08 13:26 7171方法一: import javax.imageio.Image ... -
一个不错的弹出窗口的js效果(值的收藏)
2008-06-02 19:00 1113<script type="text/jav ... -
<c:forEach>&条件标签使用
2008-06-06 09:57 7097<c:forEach>标签的使 ... -
div 缓慢下拉效果
2008-06-10 18:05 1519<!DOCTYPE html PUBLIC " ... -
弹出窗口传值
2008-06-13 09:07 909子窗口中内容: function change(obj){ ... -
Action之间传值
2008-06-13 09:13 864return new ActionForward(" ... -
数据库连接池简介
2008-06-15 14:30 741数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应 ... -
form产生的空行的解决
2008-06-16 16:32 680利用css属性,将form的内部上下左右的填充距离设置为0就好 ... -
实现Web程序的自动登录
2008-06-16 17:13 786...
相关推荐
Spring事务管理的目的是确保数据的一致性和完整性,尤其是在多操作、多资源的环境中。本Demo将深入探讨Spring如何实现事务的管理。 首先,Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。 ...
### Spring事务管理详解 #### 一、事务管理基础概念 在深入探讨Spring事务管理之前,我们需要先理解什么是事务。事务可以被定义为一系列的操作集合,这些操作作为一个整体被提交或回滚。简单来说,事务就是一个不...
本资源包提供了进行Spring事务管理开发所需的所有关键库,包括框架基础、核心组件、AOP(面向切面编程)支持、日志处理、编译工具以及与数据库交互的相关jar包。下面将对这些知识点进行详细解释: 1. **Spring框架*...
Spring 框架是Java开发中...理解并熟练掌握Spring事务管理,对于提升应用程序的稳定性和可靠性至关重要。在实际开发中,结合声明式事务管理、事务传播行为、隔离级别和回滚规则,可以有效地确保数据的完整性和一致性。
Spring事务管理.pdf 1.资料 2.本地事务与分布式事务 3.编程式模型 4.宣告式模型
Synchronized锁在Spring事务管理下,导致线程不安全。
本篇将深入探讨Spring事务管理的核心概念、工作原理以及如何使用`spring-tx-3.2.0.RELEASE.jar`这个jar包。 首先,我们需要理解什么是事务。在数据库系统中,事务是一组操作,这些操作被视为一个整体,要么全部完成...
标题“Spring事务管理失效原因汇总”指出了本文的核心内容是分析在使用Spring框架进行事务管理时可能遇到的问题及其原因。描述部分进一步说明了事务失效的后果往往不明显,容易在测试环节被忽略,但在生产环境中出现...
本篇文章将深入探讨Spring事务管理的五种方法,旨在帮助开发者更好地理解和运用这一核心特性。 首先,我们来了解什么是事务。在数据库操作中,事务是一组逻辑操作,这些操作要么全部成功,要么全部失败,确保数据的...
本文将详细介绍Spring事务管理的四种方式:编程式事务管理、声明式事务管理、PlatformTransactionManager接口以及TransactionTemplate。 1. **编程式事务管理**:这是一种手动控制事务的方式,通过在代码中调用`...
### Spring事务管理详解 #### 一、Spring事务管理的重要性及必要性 在现代软件开发中,事务管理是一项至关重要的技术,特别是在涉及数据库操作时。事务能够确保一系列操作要么全部成功,要么全部失败,这对于保持...
Spring事务管理是Spring框架的核心特性之一,它提供了一种强大且灵活的方式来管理应用程序中的事务边界。在企业级Java应用中,事务处理是确保数据一致性、完整性和可靠性的关键部分。本篇文章将深入探讨Spring的事务...
总的来说,Spring事务管理提供了一种灵活、强大的方式来处理应用程序中的事务,无论是在简单还是复杂的事务场景下,都能有效保证数据的一致性和完整性。通过声明式事务管理,开发者可以将关注点从事务细节中解脱出来...
Spring事务管理是Spring框架的核心特性之一,它提供了一种在Java应用中管理和协调数据库事务的标准方式。对于有Java基础的开发者来说,理解并掌握Spring事务管理至关重要,因为这有助于确保数据的一致性和完整性,...
当出现像描述中那样的问题——SQL语句执行出错但事务未回滚时,我们需要深入理解Spring事务管理的配置和机制。以下是一些关键知识点: 1. **Spring事务管理类型**: - **编程式事务管理**:通过`...
spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...
在思维导图"Spring Transaction.twd"中,可能包含了Spring事务管理的各个概念和它们之间的关系,如事务的ACID属性(原子性、一致性、隔离性和持久性),事务管理器,以及声明式和编程式事务管理的实现方式。...
### Spring事务管理的方法 #### 一、引言 在企业级应用开发中,事务管理是一项至关重要的技术。Spring框架作为Java领域中一个非常流行的轻量级框架,为开发者提供了多种方式来实现事务管理,其中主要分为编程式...