1. 程式人生 > >SpringMvc+mybatis手動開啟和提交事務

SpringMvc+mybatis手動開啟和提交事務

 //獲取Spring容器的物件
        WebApplicationContext contextLoader = ContextLoader.getCurrentWebApplicationContext();
        //設定屬性的預設屬性
        DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
        //設定事務的傳播行為,此處是設定為開啟一個新事物
        definition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
        //設定事務的隔離級別,此處是讀已經提交
        definition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
        //從spring容器物件中獲取DataSourceTransactionManager,這個根據配置檔案中配置的id名(transactionManager)
        DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) contextLoader.getBean("transactionManager");
        //獲取事務狀態物件
        TransactionStatus transactionStatus = (TransactionStatus) transactionManager.getTransaction(definition);
      //****開始對資料庫操作
         //從賬號表中隨機獲取一個賬號
        account = registMapper.getAccountFromTbAccount();
        //在該賬號表中刪除該賬號
        registMapper.deleteAccountByAccountNumber(account);
      //****結束對資料庫操作
        //提交事務
        transactionManager.commit(transactionStatus);