zoukankan      html  css  js  c++  java
  • SpringMVC 手动控制事务提交 【转】

    1、配置文件 applicationContext.xml:

    <bean id="txManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
    p:dataSource-ref="dataSource"/>

    2、在需要加事务的方法上加上

    DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) ctx
    .getBean("txManager");
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务,这样会比较安全些。
    TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态
    try {
    //逻辑代码,可以写上你的逻辑处理代码
    transactionManager.commit(status);
    } catch (Exception e) {
    transactionManager.rollback(status);
    }

     

    这是在有 ApplicationContext 的情况下、
     

    3.ApplicationContext 不存在的情况下

     

       @Autowired
    
        private DataSourceTransactionManager txManager;
    
     
    
       DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    
       def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);// 事物隔离级别,开启新事务
    
       TransactionStatus status = txManager.getTransaction(def); // 获得事务状态
    
      try{
           //逻辑代码,可以写上你的逻辑处理代码
          txManager.commit(status);
      }catch(Exception e){
          txManager.rollback(status);
      }
  • 相关阅读:
    leetcode401 二进制手表问题
    HashMap与Hashtable
    ideal配置web项目
    java多线程
    spring boot项目启动报错:Failed to load property source from location 'classpath:/application.yml'
    spring cloud实例Dome详细搭建(一)
    ideal激活方法
    Go学习第三章面向对象
    Go学习第二章内建容器
    Go学习第一章基础语法
  • 原文地址:https://www.cnblogs.com/hmhhz/p/9584082.html
Copyright © 2011-2022 走看看