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