1、手动控制事务
@Autowired
DataSourceTransactionManager transactionManager;
public boolean trans() {
//事物定义类
DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED);
//获取事物对象
TransactionStatus status = transactionManager.getTransaction(transactionDefinition);
try{
// 插入表1
boolean flag1 = testMapper.sale1();
if (flag1) {
// 插入表2
boolean flag2 = testMapper.sale2();
if (flag2) {
//插入成功提交事物
transactionManager.commit(status);
return true;
}else{
//插入失败抛出异常,使事物回滚
throw new Exception();
}
}
throw new Exception();
}catch(Exception e){
//异常回归事物
transactionManager.rollback(status);
}
return false;
}
注:方法1手动控制事务处理是正常的,发生异常时,可以回滚事务
2、注入配置事务
<