spring 3 ibatis 事务不起作用

问题描述

controller层调用service@RequestMapping("/test.html")publicStringtest(ModelMapmap){testService.t();//调用servicereturnTemplateKeys.INDEX;}/////////////serviceDevicedevice=newDevice();device.setDeviceDesc("test");d.saveOrUpdate(device);floatf=1/0;//故意抛出异常,测试Menu1me=newMenu1();me.setMenu1Desc("dddd");menu1DAO.save(me);在上面代码中测试,但最终结果是device仍旧插入数据库里,没有回滚下面是applicationContext.xml配置<beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><propertyname="driverClass"value="${jdbc.driver}"/><propertyname="jdbcUrl"value="${jdbc.url}"/><propertyname="user"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/><propertyname="minPoolSize"value="${jdbc.minPoolSize}"/><propertyname="maxPoolSize"value="${jdbc.maxPoolSize}"/><propertyname="initialPoolSize"value="${jdbc.initialPoolSize}"/><propertyname="maxIdleTime"value="${jdbc.maxIdleTime}"/><propertyname="acquireIncrement"value="${jdbc.acquireIncrement}"/><propertyname="acquireRetryAttempts"value="${jdbc.acquireRetryAttempts}"/><propertyname="acquireRetryDelay"value="${jdbc.acquireRetryDelay}"/><propertyname="testConnectionOnCheckin"value="${jdbc.testConnectionOnCheckin}"/><propertyname="automaticTestTable"value="${jdbc.automaticTestTable}"/><propertyname="idleConnectionTestPeriod"value="${jdbc.idleConnectionTestPeriod}"/><propertyname="checkoutTimeout"value="${jdbc.checkoutTimeout}"/></bean><!--事物配置--><beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"></property></bean><aop:config><aop:pointcutid="serviceOperation"expression="execution(*com.asc.service.*.*(..))"/><aop:advisorpointcut-ref="serviceOperation"advice-ref="txAdvice"/></aop:config><!--配置事务通知--><tx:adviceid="txAdvice"transaction-manager="transactionManager"><tx:attributes><tx:methodname="*"rollback-for="Exception"/></tx:attributes></tx:advice>忘高手指导

解决方案

解决方案二:
把异常和他上边一行调换位置看看。
解决方案三:
跟顺序没关系,试了下不行的
解决方案四:
测试代码
解决方案五:
正在学习中!!!!!!!!!!!!!!!!!!
解决方案六:
学习中····
解决方案七:
你所使用数据库实例是否支持事务?
解决方案八:
学习中。。。
解决方案九:
同样问题!纠结中。。。。
解决方案十:
数据库当然支持事务的了
解决方案十一:
这并不是事务没起作用,只不过是DataSourceTransactionManager是自动提交的方式。你不妨做一个小实验,在service层打开事务。然后在service层依次调用两个dao的操作如下面例子publicclassSomeServiceImplimplementsSomeService{@ResourceprivateSqlMapClientTemplatesmct;publicvoiddoSomething(){smct.insert(....);if(0<1){thrownewRuntimeException("故意抛一场");}smct.insert(...);}}你把上面的service执行一次,如果第一条插入语句没有成功的话,说明你的事务配置没有问题的。顺便说一下,你结贴率太低了!!!

时间: 2024-07-31 01:22:40

spring 3 ibatis 事务不起作用的相关文章

spring+mybatis,事务不起作用,求帮忙

问题描述 spring+mybatis,事务不起作用,求帮忙 spring + mybatis,开始annotation式事务 配置如下: <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="data

用Spring管理iBatis事务的问题

问题描述 我想在业务层实现事务的管理,结果发现当业务层里面的对应方法在执行过程中出现异常的时候事务并没有回滚,这个问题困扰了我一天多了,请大侠们不吝赐教(spring2.0/ibatis2.0)!以下是相关配置文件这是web-content.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http:/

mysql+spring 声明式事务不起作用

问题描述 详细情况如图所示, 真的找不出是哪里存在了问题... 也许是申明式事务配置错误? 求大家帮我看看啦, 谢谢!!! 解决方案 invalid bound statement (not found) 你的那个statement名字估计写的不对解决方案二:首先,不确定到底是哪里出错了,但有几个地方你可以再确定下,1.配置事务的地方增加rollback-for 和 no-rollback-for 属性的值,但是我也不确定这两个属性是否有默认值.<tx:method name="del*&

mybatis spring 整合 junit测试。 事务不起作用,不提交。删除无效???

问题描述 mybatis spring 整合 junit测试. 事务不起作用,不提交.删除无效??? applicationContext.xml 中的数据库和 sessionFactory以及事务配置 Xml代码 <bean id="bssDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- Connec

spring事务错误-spring+ibatis 事务错误

问题描述 spring+ibatis 事务错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentdao' defined in URL [file:/E:/资料/apache-tomcat-6.0.29/webapps/firstibatis/WEB-INF/classes/spring/applicationContext-jdbc.xml]: Erro

spring 注解事务不起作用(太奇怪了)

问题描述 CopyOfUserServiceImp.javapackage com.zjhc;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import javax.sql.DataSource;import org.springframework.transaction.annotation.Transactional;public class CopyOfUserServic

spring mvc+mybatis 事务控制不起作用

问题描述 用的是spring mvc和mybatis框架.数据库是mysql.然后发现事务配置了不起作用..业务逻辑是新增用户,用户新增成功之后再在其他表插入一条对应的用户角色关联信息.现在问题是假如用户插入成功之后..插入对应的用户角色关联信息出错后,用户那条新增记录不能自动删除.看了很多人说是因为@service提前扫描的问题.那个我改过了.还有说是表的引擎不是InnoDB.但是我们建的表是InnoDB.还有说要抛出RuntimeException.我也抛出了..但是还是没用.没办法.请大家

通向架构师的道路(第二十天)万能框架spring(二)maven结合spring与ibatis

一.前言 上次讲了Struts结合Spring并使用Spring的JdbcTemplate来搭建工程框架后我们面临着jar库无法管理,工程发布不方便,jar包在工程内太占空间,jar包冲突,管理,甚至漏包都问题.于是我们在讲"万能框架spring(二)"前,传授了一篇番外篇,即讲利用maven来管理我们的jar库. 从今天开始我们将结合"万能框架spring(一)"与番外篇maven来更进一步丰富我们的ssx框架,那么今天讲的是使用iBatis3结合SS来构建我们的

spring声明式事务解析_java

一.spring声明式事务 1.1 spring的事务管理器 spring没有直接管理事务,而是将管理事务的责任委托给JTA或相应的持久性机制所提供的某个特定平台的事务实现.spring容器负责事物的操作,spring容器充当切面,事务的方法称为增强处理,生成的代理对象的方法就是目标方法+增强也就是crud+事务程序员只用做crud的操作,也就是目标方法和声明哪些方法应该在事务中运行. Spring提供了许多内置事务管理器实现: DataSourceTransactionManager:位于or