spring配置JDBC事务

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,mysql,bean,jdbc,Class,encoding)