zoukankan      html  css  js  c++  java
  • Spring 手动提交事务

      在使用Spring声明式事务时,不需要手动的开启事务和关闭事务,但是对于一些场景则需要开发人员手动的提交事务,比如说一个操作中需要处理大量的数据库更改,可以将大量的数据库更改分批的提交,又比如一次事务中一类的操作的失败并不需要对其他类操作进行事务回滚,就可以将此类的事务先进行提交,这样就需要手动的获取Spring管理的Transaction来提交事务。

    1、applicationContext.xml配置

     1 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     2     <property name="dataSource" ref="dataSource" />
     3 </bean>
     4 
     5 <tx:advice id="txAdvice" transaction-manager="transactionManager">
     6     <tx:attributes>
     7         <tx:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception" />
     8         <tx:method name="find*" read-only="true" propagation="SUPPORTS" />
     9         <tx:method name="get*" read-only="true" propagation="SUPPORTS" />
    10         <tx:method name="select*" read-only="true" propagation="SUPPORTS" />
    11         <tx:method name="list*" read-only="true" propagation="SUPPORTS" />
    12         <tx:method name="load*" read-only="true" propagation="SUPPORTS" />
    13     </tx:attributes>
    14 </tx:advice>
    15 
    16 <aop:config>
    17     <aop:pointcut id="servicePointCut" expression="execution(* com.xxx.xxx.service..*(..))" />
    18     <aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointCut" />
    19 </aop:config>

    2、手动提交事务

     1 @Resource(name="transactionManager")
     2 private DataSourceTransactionManager transactionManager;
     3 
     4 DefaultTransactionDefinition transDefinition = new DefaultTransactionDefinition();
     5 //开启新事物
     6 transDefinition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
     7 TransactionStatus transStatus = transactionManager.getTransaction(transDefinition);
     8 try {
     9     //TODO
    10     transactionManager.commit(transStatus);
    11 } catch (Exception e) {
    12     transactionManager.rollback(transStatus);
    13 }
  • 相关阅读:
    Mybatis--->第五节注解完成增删改查
    Mybatis--->新增新功能报错,以前都正常,突然报错
    Mybatis--->limit分页查询
    固定套路--->log4j日志运用-Maven
    Mybatis第三节优化别名--->user
    Mybatis入门第二节--->优化
    Mybatis 报错 java.io.IOException: Could not find resource mybatis-config.xml
    学习Java的第十二天
    学习Java的第十一天
    学习Java的第十天
  • 原文地址:https://www.cnblogs.com/banning/p/6346669.html
Copyright © 2011-2022 走看看