开发者社区> 问答> 正文

spring事物不回滚的问题。 400 请求出错 

<!-- 读配置文件通过数据库连接池连接数据库 --> 
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
  <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property> 
  <property name="url"><value>jdbc:mysql://localhost:3306/****?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull</value></property> 
  <property name="username"><value>****</value></property> 
  <property name="password"><value>****</value></property> 
 </bean> 
 <!-- 配置数据库事务管理 -->
 <bean id="transactionManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
  <property name="dataSource" ref="dataSource" /> 
 </bean>
 <!-- 配置事务特性 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager"> 
     <tx:attributes> 
       <tx:method name="add*" propagation="REQUIRED" rollback-for="RuntimeException" /> 
       <tx:method name="update*" propagation="REQUIRED" rollback-for="RuntimeException"/> 
       <tx:method name="delete*" propagation="REQUIRED" rollback-for="RuntimeException"/> 
        <tx:method name="*" read-only="true"/> 
     </tx:attributes> 
    </tx:advice> 
 <!-- 配置哪些方法需要配置事务管理   -->
    <aop:config > 
     <aop:pointcut id="allServiceMethod"   expression="execution(public * com.flipnetwork.flip.logic.*.*(..))" /> 
     <aop:advisor advice-ref="txAdvice" pointcut-ref="allServiceMethod"/> 
    </aop:config> 

----------------------------------------------------------------------------------

ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
  IUserLogic  us = (IUserLogic)act.getBean("userlogic");
   
    User user1 = new User();
    user1.setUsername("cba");
    user1.setPassword("xyzxyzxyzxyz");
    user1.setLoginname("zyxxx");
    User user = new User();
    user.setUsername("abc444444");
    user.setPassword("xyz");
    user.setLoginname("tttt");
    us.addsignin(user1);
    us.addsignin(user);会出错!

----------------------------------------------

没有回滚。插入一条数据。

展开
收起
kun坤 2020-05-25 20:35:55 549 0
1 条回答
写回答
取消 提交回答
  • "

    出错信息是什么!

    <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception" />  试下~

     

    ######不能回滚,我改成<tx:method name="*" /> ,都不能回滚,我故意弄了一个错误,不能回滚。######jdbc与spring整合貌似还需要一个代理类~ 详情你百度一下吧~######回复 @心心相印 : 要spring管理事务,你的数据源必须给spring管理。######回复 @yuanxu_zhao : 能请问你是加了什么吗?我也是和你一样,事务没法回滚,请告知,谢谢######回复 @aviation : 多年没有碰过框架鸟!没有记错的话~加个cglib的包貌似就可以了!具体方法你百度一下吧!######回复 @yuanxu_zhao : 你好 请问在解决这个问题是使用的jdbcTemplate么??我跟你写的代码差不多?请教怎么改能使修改量最小?######解决了 谢谢。我jdbc是只获取了连接。然后自己封装。所以spring不会管理。然后用了spring自己的执行方法。事物启动了。并且抛了异常后,就会回滚。问题解决了。谢谢。######

    引用来自“HL_Simon”的答案

    jdbc与spring整合貌似还需要一个代理类~ 详情你百度一下吧~
    3q
    "
    2020-05-26 13:14:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多