Spring+Mybatis 手動控制事務
參考:
https://blog.csdn.net/qq_41750175/article/details/87621170
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; }