SpringBoot整合MySQL事务,实战用法+异常处理
📅 2026/7/15 13:26:26
👁️ 阅读次数
📝 编程学习
前言
实际开发几乎不用手写 BEGIN/COMMIT,全部使用Spring 声明式事务。
本篇带你从零掌握 SpringBoot 事务实战。
一、核心注解
@Transactional
加在方法/类上,自动开启事务、异常自动回滚。
二、实战转账代码
@Service public class AccountService { @Autowired private AccountMapper accountMapper; @Transactional(rollbackFor = Exception.class) public void transfer(){ // A减100 accountMapper.subMoney("A",100); // 模拟异常 int i = 1/0; // B加100 accountMapper.addMoney("B",100); } }出现异常,事务自动回滚,不会出现单边扣款。
三、新手必踩事务坑
必须加 rollbackFor = Exception.class,否则默认只回滚运行时异常
方法必须public
内部调用事务失效(A方法调用本类B事务方法,无效)
try-catch 捕获异常不抛出,事务不会回滚
四、正确异常处理方式
try{ // 业务 }catch (Exception e){ throw new RuntimeException(e); }五、总结
SpringBoot 事务核心:@Transactional
所有支付、订单、转账必须加事务
注意事务失效四大场景,避免生产事故
编程学习
技术分享
实战经验