Spring手動控制事務提交

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);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章