spring配置JDBC事务

原创 2012年03月24日 22:03:30

http://www.iteye.com/problems/2951

 

Spring+JDBC事务配置

悬赏:10 发布时间:2008-08-19 提问人:charity_lan (初级程序员)

Java代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">   
  3. <beans>   
  4.        
  5.      <bean id="dataSource"  
  6.         class="org.apache.commons.dbcp.BasicDataSource"  
  7.         destroy-method="close">   
  8.         <property name="driverClassName"     
  9.             value="com.mysql.jdbc.Driver" />   
  10.         <property name="url"    
  11.         value="jdbc:mysql://localhost:3306/mucun?useUnicode=true&amp;characterEncoding=utf-8&amp;useOldAliasMetadataBehavior=true"></property>   
  12.         <property name="username" value="root"></property>     
  13.         <property name="password" value=""></property>             
  14.         <property name="validationQuery" value="select 1" />                 
  15.         <property name="maxIdle" value="5" />    
  16.         <property name="maxWait" value="100" />     
  17.         <property name="maxActive" value="20" />   
  18.     </bean>   
  19.   
  20.     <bean id="transactionManager"  
  21.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">   
  22.         <property name="dataSource">   
  23.             <ref local="dataSource" />   
  24.         </property>   
  25.     </bean>      
  26.        
  27.     <bean id="abstractTxDefine" lazy-init="true"  
  28.         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">   
  29.         <property name="transactionManager">   
  30.             <ref bean="transactionManager" />   
  31.         </property>   
  32.         <property name="transactionAttributes">   
  33.             <props>   
  34.                 <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>   
  35.             </props>   
  36.         </property>            
  37.     </bean>   
  38.         
  39.     <bean id="sqlMapClient"  
  40.         class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">   
  41.         <property name="configLocation">   
  42.             <value>WEB-INF/classes/sqlMapConfig.xml</value>   
  43.         </property>   
  44.         <property name="dataSource">   
  45.             <ref bean="dataSource"></ref>   
  46.         </property>   
  47.     </bean>   
  48.     <bean id="sqlMapDao"  
  49.         class="com.charity.common.dao.impl.SqlMapDaoUtilsImp">   
  50.         <property name="sqlMapClient" ref="sqlMapClient"/>   
  51.     </bean>    
  52.   
  53.     <bean id="jdbcDao" class="com.charity.common.dao.impl.JdbcDaoUtilsImp">   
  54.         <property name="dataSource">     
  55.             <ref local="dataSource" />   
  56.         </property>   
  57.     </bean>   
  58.        
  59.     <bean id="serviceManager" lazy-init="true"    
  60.         class="com.charity.common.service.impl.ServiceManager">   
  61.         <property name="sqlMapDao">   
  62.             <ref bean="sqlMapDao" />   
  63.         </property>   
  64.         <property name="jdbcDao">   
  65.             <ref bean="jdbcDao" />   
  66.         </property>   
  67.     </bean>   
  68.        
  69.     <bean id="multiTableFormdataService" parent="abstractTxDefine">   
  70.         <property name="target">   
  71.             <bean parent="serviceManager"  
  72.                 class="com.charity.common.service.impl.MultiTableFormdataService">   
  73.             </bean>   
  74.         </property>   
  75.     </bean>   
  76. </beans>  


class MultiTableFormdataService extends ServiceManager{
      实现业务代码
}
class ServiceManager {
   jdbcDao;
   sqlMapDao;
  
}
问题:
结果是在MultiTableFormdataService 类中多表保存,并没有因为某条语句错误而产生事务回滚。

不知道问什么,请指教

采纳的答案

2008-08-19 lggege (架构师)

Java代码 复制代码 收藏代码
  1. <bean id="abstractTxDefine" lazy-init="true"     
  2.         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">   


Java代码 复制代码 收藏代码
  1. <bean id="multiTableFormdataService" parent="abstractTxDefine">    


所以, 已经给multiTableFormdataService加了事务.

建议LZ查看自己mysql的engine是否不是InnoDB的.

Sql代码 复制代码 收藏代码
  1. show table status from table_name;   

Spring-jdbc:事务管理器的使用

首先要明确一下事务的概念: 事务是一些列的动过,它们被当做一个单独的工作单元。这些动作要么全部完成要么全部不起作用。 事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性。 事...
  • u013468917
  • u013468917
  • 2016年08月23日 15:43
  • 698

spring学习笔记10--Spring+jdbc组合开发(注解方式配置事务)

Spring+jdbc组合开发 步骤: 一、配置数据源 主流数据库连接池之一(DBCP、c3p0、proxool),单独使用DBCP需要使用commons-dbpc.jar、commons-co...
  • Hollboy
  • Hollboy
  • 2013年05月05日 13:42
  • 1954

JDBC事务控制管理

1、事务 (1)事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 例如:A——B转帐,对应于如下两条sql语句 update account set ...
  • caomiao2006
  • caomiao2006
  • 2014年03月28日 16:55
  • 26341

JDBC与MySql:事务

什么是事务?  事务的概念: 事务是指逻辑上的一组操作,这组操作要么同时完成要么同时不完成. 案例: 有一个很经典的银行转账案例,解释了什么是事务,事务的重要性: 假设有a,b两个人...
  • javy_codercoder
  • javy_codercoder
  • 2015年10月21日 15:21
  • 495

jdbc事务和事务的隔离级别

在jdbc的使用中以最简单的jdbc的使用为例,说明了jdbc的具体用法。然而在通常项目中,需要考虑更多内容,例如事务。 事务,在单个数据处理单元中,存在若干个数据处理,要么整体成功,要么整...
  • Crow_feiyu
  • Crow_feiyu
  • 2016年05月03日 16:37
  • 3481

JDBC中的事务操作

JDBC中事务的操作       所谓的事务,就是我们在做一些事情的时候,要么同时成功,要么同时失败。这就是事务。 可以举一个简单的例子。比如说,我们在ATM中存钱的时候,如果我们存钱...
  • li12412414
  • li12412414
  • 2016年08月13日 01:12
  • 1123

Spring与JDBC整合、事务处理

Spring的配置文件
  • hanhan313
  • hanhan313
  • 2012年11月01日 21:41
  • 10707

Java中JDBC的事务问题

事务 l  事务的四大特性:ACID; l  mysql中操作事务 l  jdbc中操作事务 事务概述 为了方便演示事务,我们需要创建一个account表: CREATE ...
  • dzy21
  • dzy21
  • 2016年07月18日 13:53
  • 3953

JDBC中使用事务编程步骤

1.关闭自动提交事务 Connection conn = DriverManager.getConnection("链接url","用户名","密码"); conn.setAutoCommit(f...
  • tanyujing
  • tanyujing
  • 2013年04月09日 21:10
  • 4737

JDBC中处理事务,小Demo

JDBC演示事务,即转账操作
  • qq_25827845
  • qq_25827845
  • 2016年09月23日 11:09
  • 1221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring配置JDBC事务
举报原因:
原因补充:

(最多只允许输入30个字)