Spring+Mybatis 手动控制事务

public boolean testDelete(String jobCode) throws Exception {  
      boolean flag = false;  
      //1.获取事务控制管理器  
      DataSourceTransactionManager transactionManager = HqznContext.getBean(  
           "transactionManager", DataSourceTransactionManager.class);//这里是spring手动注入bean,也可以使用自动注入 HqznContext是一个工具类:主要用于简化spring手动注入代码  
      //2.获取事务定义  
      DefaultTransactionDefinition def = new DefaultTransactionDefinition();  
      //3.设置事务隔离级别,开启新事务  
      def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);  
      //4.获得事务状态  
      TransactionStatus status = transactionManager.getTransaction(def);  
      try {  
        //5.具体的数据库操作(多个)  
        BOBaseJob r = new BOBaseJob();  
        r.setJobCode("SW001");  
        r.setJobName("事务001");  
        BOBaseJobMapper.deleteByPrimaryKey(jobCode);  
        BOBaseJobMapper.insert(r);  
        flag = true;  
        transactionManager.commit(status);  
      } catch (Exception e) {  
        transactionManager.rollback(status);  
      }  
      return flag;  
   }

欢迎加入QQ群:104286694

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容