spring配置JDBC事务
2012-03-24 22:03
429 查看
http://www.iteye.com/problems/2951
悬赏:10 发布时间:2008-08-19 提问人:charity_lan (初级程序员)
<
> 猎头职位: 上海:
资深架构师
Java代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/mucun?useUnicode=true&characterEncoding=utf-8&useOldAliasMetadataBehavior=true"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
<property name="validationQuery" value="select 1" />
<property name="maxIdle" value="5" />
<property name="maxWait" value="100" />
<property name="maxActive" value="20" />
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="abstractTxDefine" lazy-init="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>WEB-INF/classes/sqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
</bean>
<bean id="sqlMapDao"
class="com.charity.common.dao.impl.SqlMapDaoUtilsImp">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<bean id="jdbcDao" class="com.charity.common.dao.impl.JdbcDaoUtilsImp">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="serviceManager" lazy-init="true"
class="com.charity.common.service.impl.ServiceManager">
<property name="sqlMapDao">
<ref bean="sqlMapDao" />
</property>
<property name="jdbcDao">
<ref bean="jdbcDao" />
</property>
</bean>
<bean id="multiTableFormdataService" parent="abstractTxDefine">
<property name="target">
<bean parent="serviceManager"
class="com.charity.common.service.impl.MultiTableFormdataService">
</bean>
</property>
</bean>
</beans>
class MultiTableFormdataService extends ServiceManager{
实现业务代码
}
class ServiceManager {
jdbcDao;
sqlMapDao;
}
问题:
结果是在MultiTableFormdataService 类中多表保存,并没有因为某条语句错误而产生事务回滚。
不知道问什么,请指教
<bean id="abstractTxDefine" lazy-init="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
Java代码
<bean id="multiTableFormdataService" parent="abstractTxDefine">
所以, 已经给multiTableFormdataService加了事务.
建议LZ查看自己mysql的engine是否不是InnoDB的.
Sql代码
show table status from table_name;
Spring+JDBC事务配置
悬赏:10 发布时间:2008-08-19 提问人:charity_lan (初级程序员)
<> 猎头职位: 上海:
资深架构师
Java代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/mucun?useUnicode=true&characterEncoding=utf-8&useOldAliasMetadataBehavior=true"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
<property name="validationQuery" value="select 1" />
<property name="maxIdle" value="5" />
<property name="maxWait" value="100" />
<property name="maxActive" value="20" />
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="abstractTxDefine" lazy-init="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>WEB-INF/classes/sqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
</bean>
<bean id="sqlMapDao"
class="com.charity.common.dao.impl.SqlMapDaoUtilsImp">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<bean id="jdbcDao" class="com.charity.common.dao.impl.JdbcDaoUtilsImp">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="serviceManager" lazy-init="true"
class="com.charity.common.service.impl.ServiceManager">
<property name="sqlMapDao">
<ref bean="sqlMapDao" />
</property>
<property name="jdbcDao">
<ref bean="jdbcDao" />
</property>
</bean>
<bean id="multiTableFormdataService" parent="abstractTxDefine">
<property name="target">
<bean parent="serviceManager"
class="com.charity.common.service.impl.MultiTableFormdataService">
</bean>
</property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mucun?useUnicode=true&characterEncoding=utf-8&useOldAliasMetadataBehavior=true"></property> <property name="username" value="root"></property> <property name="password" value=""></property> <property name="validationQuery" value="select 1" /> <property name="maxIdle" value="5" /> <property name="maxWait" value="100" /> <property name="maxActive" value="20" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref local="dataSource" /> </property> </bean> <bean id="abstractTxDefine" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED,-Exception</prop> </props> </property> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>WEB-INF/classes/sqlMapConfig.xml</value> </property> <property name="dataSource"> <ref bean="dataSource"></ref> </property> </bean> <bean id="sqlMapDao" class="com.charity.common.dao.impl.SqlMapDaoUtilsImp"> <property name="sqlMapClient" ref="sqlMapClient"/> </bean> <bean id="jdbcDao" class="com.charity.common.dao.impl.JdbcDaoUtilsImp"> <property name="dataSource"> <ref local="dataSource" /> </property> </bean> <bean id="serviceManager" lazy-init="true" class="com.charity.common.service.impl.ServiceManager"> <property name="sqlMapDao"> <ref bean="sqlMapDao" /> </property> <property name="jdbcDao"> <ref bean="jdbcDao" /> </property> </bean> <bean id="multiTableFormdataService" parent="abstractTxDefine"> <property name="target"> <bean parent="serviceManager" class="com.charity.common.service.impl.MultiTableFormdataService"> </bean> </property> </bean> </beans>
class MultiTableFormdataService extends ServiceManager{
实现业务代码
}
class ServiceManager {
jdbcDao;
sqlMapDao;
}
问题:
结果是在MultiTableFormdataService 类中多表保存,并没有因为某条语句错误而产生事务回滚。
不知道问什么,请指教
采纳的答案
2008-08-19 lggege (架构师)
Java代码<bean id="abstractTxDefine" lazy-init="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<bean id="abstractTxDefine" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
Java代码
<bean id="multiTableFormdataService" parent="abstractTxDefine">
<bean id="multiTableFormdataService" parent="abstractTxDefine">
所以, 已经给multiTableFormdataService加了事务.
建议LZ查看自己mysql的engine是否不是InnoDB的.
Sql代码
show table status from table_name;
相关文章推荐
- 配置Spring JDBC的事务回滚失效
- spring 通过JDBC事务管理 中切面的配置
- spring 同时配置hibernate and jdbc 事务
- 【Spring】spring-mvc hibernate druid jdbc等数据源事务配置详解(解决注解事务不生效问题)
- 在Spring中采用声明式方法对Hibernate和JDBC进行统一的事务配置(AOP)
- 在Spring中采用声明式方法对Hibernate和JDBC进行统一的事务配置(AOP)
- 在spring中使用JDBC事务配置
- 在Spring中采用声明式方法对Hibernate和JDBC进行统一的事务配置(AOP)
- spring(JDBC)事务配置
- Spring JDBC-使用注解配置声明式事务
- spring 同时配置hibernate and jdbc 事务
- 【Spring】在Spring框架下使用注解配置JDBC事务
- spring jdbc 事务配置----TransactionTemplate使用
- spring jdbc事务配置demo
- spring 同时配置hibernate and jdbc 事务
- Spring JDBC和Hibernate混用时,如何配置事务管理
- spring 同时配置hibernate and jdbc 事务
- 使用注解方式配置spring中的jdbc事务
- spring数据源配置及事务管理--jdbc
- 18.01.24,web学习第四十五天,还有半年,努力吧青年 Spring第三天 aop事务配置+Spring整合jdbc操作