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);
      }
  • 相关阅读:
    深入理解幂等性(转)
    Mysql数据库表结构设计准则
    nodejs以对象做对象的key导致value一直被覆盖
    数组常用方法
    css选择器总结
    CSS 选择器权重计算规则
    ElementUI select
    linux-sed命令
    vue 组件数据传递:
    vue视频: 自定义指令 && 拖拽 && 自定义键盘信息
  • 原文地址:https://www.cnblogs.com/hmhhz/p/9584082.html
Copyright © 2011-2022 走看看