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

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

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

Sql代码  
  1. show table status from table_name;

spring配置JDBC事务相关推荐

  1. Spring4.x()--Spring的Jdbc事务-零配置

    Spring的Jdbc事务-零配置 一.拷贝必要的jar包到工程的lib目录 二.准备数据库表和实体类 创建数据库: create database spring; use spring; 创建表: ...

  2. spring 配置只读事务_只读副本和Spring Data第3部分:配置两个实体管理器

    spring 配置只读事务 我们之前的设置可以正常工作. 我们现在要做的是进一步发展,并配置两个单独的实体管理器,而不会影响我们之前实现的功能. 第一步是将默认实体管理器配置设置为主要配置. 这是第一 ...

  3. Spring4.x()-Spring的Jdbc事务-注解

    Spring的Jdbc事务-注解 一.拷贝必要的jar包到工程的lib目录 二.创建spring的配置文件并导入约束 <?xml version="1.0" encoding ...

  4. spring 配置只读事务_只读副本和Spring Data第1部分:配置数据库

    spring 配置只读事务 这是有关我们为利用只读副本来提高应用程序性能而寻求的一系列博客文章. 对于这个项目,我们的目标是建立我们的spring数据应用程序,并使用read仓库进行写操作,并基于re ...

  5. spring 配置jdbc/hibernate/jpa

    http://www.cnblogs.com/tazi/archive/2012/01/04/2311577.html Spring配置事务的三种方式 步骤:数据源配置-事务配置(xml配置方式或注解 ...

  6. (转载)spring配置hibernate 事务。

    Spring和Hibernate整合后,通过Hibernate API进行数据库操作时发现每次都要opensession,close,beginTransaction,commit,这些都是重复的工作 ...

  7. Spring配置JDBC连接Orcale、MySql、sqlserver

    阅读指南:本文章主要讲述如何在Spring框架中配置JDBC连接方式连接Oracle.Mysql.SqlServer. 原理如下: 一.导包 连接oracle11g所需的jar包:ojdbc6.jar ...

  8. Spring的JDBC事务实现

    之前项目中有大量数据提交的需求,考虑了几个解决方案后还是觉得使用事务提交效率更高.数据插入也更方便. 一.首先,让我们来看看什么是事务 事务(Transaction)是并发控制的单元,是用户定义的一个 ...

  9. spring配置jdbc连接oracle,mysql,sqlserver

    2019独角兽企业重金招聘Python工程师标准>>> http://mvnrepository.com/ 这个网站可以查询所有maven库的最新版本 一.oracle maven库 ...

最新文章

  1. 优秀程序员必备素质——快速调试
  2. 电脑显示器闪屏_Win7系统电脑显示器屏幕闪屏的解决办法
  3. azure考试_我如何通过AZ-900 Microsoft Azure基础考试
  4. Python 3.4中文编码
  5. 【排序算法】快速排序-迭代方法
  6. Packet Voice Modeling 语音包模型
  7. 帆软mysql迁移_平台数据迁移- FineReport帮助文档|报表开发|报表使用|学习教程
  8. VUE中使用Echarts图表
  9. LinearLayout和RelativeLayout布局中使用android:orientation
  10. Windows平台Qt添加OpenCV模块
  11. C++ 面向对象高级开发(侯捷)
  12. IMU 无线姿态传感器-LPMS-B2系列
  13. linux重启domino服务,在Unix平台中通过脚本来启动和停止Domino
  14. java语言TAM机程序代码(基础版)
  15. 【数据结构】二叉树遍历
  16. warmup_csaw_2016
  17. 【整理】getopt和getopt_long函数
  18. D3D初学入门一(配置开发环境及绘制D3D窗口)
  19. 智和信通自主研发智和网管数字化运维平台,助力金融业智慧转型
  20. Servlet-个人归纳总结

热门文章

  1. LeetCode 多线程 1114. 按序打印
  2. 使用python判断流媒体mp3格式
  3. Python回调函数
  4. 10.1.3 标签分类与嵌套
  5. 2015年第六届蓝桥杯C/C++ B组国赛 —— 第一题:积分之迷
  6. 大数据WEB阶段(六)MySql详解(二)
  7. java结束全部操作代码_Java基本的线程操作(附代码)
  8. java 登录数据前端加密+后台验证RSA
  9. 每天一道LeetCode-----求一个数的n次方,n是很大很大的数,n用数组存储着
  10. html代码测试1006无标题,无标题Html5页面测试点总结文章