在项目开发中,事务至关重要。多数业务需通过多个步骤完成,这些步骤必须全部成功或全部失败,以确保数据的一致性和业务逻辑的完整性,避免出现错误或异常情况。
1、 先将用户信息存入数据库,接着执行打印1除以0操作导致报错,最后仍继续保存日志记录,整个过程未使用事务控制。
2、 启动项目并调用接口后,出现/ by zero错误提示。
3、 检查数据库后发现,user表中已存在数据,说明报错前的操作已被成功保存。
4、 日志表中无记录,报错后数据未能成功保存。
5、 数据完整性受损,两步操作应同时成功或同时失败。
6、 通过添加@Transactional注解引入事务管理,即可解决该问题,具体实现所示。
7、 重启项目再测试,两表均无数据,表明事务已生效,两项操作均未成功。
评论
更多评论