springboot-jdbc 事务控制
发表于:2022-06-23 10:28:40浏览:365次
Springboot 事务控制,添加依赖,springboot 开启事务管理
org.springframework.boot spring-boot-starter-jdbc
注解方式 @Transactional,自动开启事务,异常自动回滚
@Transactional
public String functionName(){
....//业务代码
}注解方式@Transactional + try/catch 自动开启事务,catch手动回滚
@Transactional
public String functionName(){
try{
....//业务代码
}catch(Exception exception){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//关键,try/catch会导致事务不回滚,主动回滚
}
}手动开启事务 + try/catch 手动回滚
@Autowired
DataSourceTransactionManager dataSourceTransactionManager;
@Autowired
TransactionDefinition transactionDefinition;
public String functionName(){
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);//开启事务
try {
....//业务代码
dataSourceTransactionManager.commit(transactionStatus);//提交
}catch (Exception exception){
dataSourceTransactionManager.rollback(transactionStatus);//回滚
}
}
