慕酷酷来教下我
在测试事务回滚时,跟视频老师一样,在商品cid置空和删除分类之间,加了一个算术异常。可是此时我把事务回滚注释掉,方法执行后,商品cid并没有被置空,分类也没被删除(这是应该的),求解?
35
收起
正在回答
2回答
同学你好,
这里确实是没有展示出来,
但是写不写回滚还是有区别的在同一事务条件下,回滚和不提交,表现是一样的,但是还有些差别
事务处理,是将操作事件交给数据库(模拟)运行,直到commit操作,才使得修改实际产生效果,你可以看做是未提交事务都是处于一个临时库中进行
回滚是对于同一个事务,如果产生了错误,那么取消这个临时库中的操作,不对实际数据产生影响
最主要的区别在于,如果不回滚,这些临时操作会持续到这个个connection结束为止,也就是虽然你看不到,但是临时库的操作依然存在,而回滚是即时生效,其实都是回滚了,只是时间点的不一样
如果这个connection持续的时间长,就会锁着这个表,则会造成其他的问题。所以我们还是需要进行回滚的。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星