编程式事务
发布
更新
浏览
方式一
@Autowired
//这个类在配数据源的时候要配置
DataSourceTransactionManager dataSourceTransactionManager;
@Autowired
TransactionDefinition transactionDefinition;
//开启手动事务
TransactionStatus transactionStatus = null;
try {
transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
//批量插入
workProMapper.insertBatchInterruptData(batchList);
dataSourceTransactionManager.commit(transactionStatus);//提交
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(),e);//记录日志
dataSourceTransactionManager.rollback(transactionStatus);//回滚
}
方式二
@Autowired
private TransactionTemplate transactionTemplate;
public void performTransactionalOperation() {
//execute方法是被try catch包裹的,自动做了开启事务和回滚事务
transactionTemplate.execute(new TransactionCallback<Void>() {
public Void doInTransaction(TransactionStatus status) {
//在这里执行数据库操作
return null;
}
});
}