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

      项目中遇到一个问题,就是在程序的执行过程中需要不断地更新某个信息,但是在springmvc中好像是默认不可以的,那么就需要手动提交

    // 从spring容器对象中获取DataSourceTransactionManager
        public DataSourceTransactionManager getDTM(DefaultTransactionDefinition definition){
            //获取Spring容器的对象
            WebApplicationContext contextLoader = ContextLoader.getCurrentWebApplicationContext();
            //设置事务的传播行为,此处是设置为开启一个新事物
            definition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
            //设置事务的隔离级别,此处是读已经提交
            definition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
            //从spring容器对象中获取DataSourceTransactionManager,这个根据配置文件中配置的id名(transactionManager)
            DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) contextLoader.getBean("transactionManager");
            return transactionManager;
        }
    
        //获取事务状态对象
        public TransactionStatus getTS(DataSourceTransactionManager transactionManager,DefaultTransactionDefinition definition){
            TransactionStatus transactionStatus = (TransactionStatus) transactionManager.getTransaction(definition);
            return transactionStatus;
        }
    
    
    
              // 尝试手动提交事务
                //设置属性的默认属性
                DefaultTransactionDefinition definition1 = new DefaultTransactionDefinition();
                // 获取DataSourceTransactionManager
                DataSourceTransactionManager transactionManager1 = getDTM(definition1);
                //获取事务状态对象
                TransactionStatus transactionStatus1 = getTS(transactionManager,definition1);
                iExtRulecheckLogDao.update(extRulecheckLog1);
                // 提交事务
                transactionManager.commit(transactionStatus);
  • 相关阅读:
    springcloud之consul
    git学习创建项目仓库
    学习vue之路V1.0.0
    使用jquery+ajax+php实现搜索框的功能
    发现一个vue的UI组件库
    一个菜鸟用webpack-vue.js编译过程碰到的坑~~!!
    学习vue之路
    typescript入门
    计算机排序算法
    js中三种变量的声明方式const ; var ; let
  • 原文地址:https://www.cnblogs.com/jyybeam/p/9396055.html
Copyright © 2011-2022 走看看