Springboot手动提交事务
1.手动管理事务场景:
事务的重要性,相信在实际开发过程中,都有很深的了解了。但是存在一个问题我们经常在开发的时候一般情况下都是用的注解的方式来进行事务的控制,说白了基于spring的7种事务控制方式来进行事务的之间的协调。
如果在没有办法使用注解的时候(比如多线程等),就要使用手动的方式来做事务管理了,这也就是编程式的事务管理。
2. 写法
1 在service内注入 这两个bean
@Autowired
private PlatformTransactionManager platformTransactionManager;
@Autowired
private TransactionDefinition transactionDefinition;
2在 service方法内创建TransactionStatus
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
通过 platformTransactionManager.commit(transactionStatus); 提交事务
通过 platformTransactionManager.rollback(transactionStatus); 回滚事务
示例代码:
@Autowired
private PlatformTransactionManager platformTransactionManager;
@Autowired
private TransactionDefinition transactionDefinition;
public void b(){
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
UserIntegralInfo info = new UserIntegralInfo();
info.setUserId(1L);
info.setPoint(1);
info.setOp("");
info.setCurrIntegral(1);
integralMapper.insert(info);
platformTransactionManager.commit(transactionStatus);
throw new RuntimeException();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了