关于Spring事务处理
在事物处理的代码中,往往用try/catch将事务包起来,在catch里写个rollback,如:
try{
insert(); //假设为正确的插入
select(); //假设语句有错误
commit(); //提交事务
} catch(Exception e){
e.printStackTrace();
rollback();
}
但是,在try中执行成功了第一行语句,执行成功第二行时报错就不再执行try剩下的代码而是跳到catch了,这时候事务也就没有commit,则第一行也就没有生效,那rollback这行代码不就是多余的了吗?
0
收起
正在回答
1回答
同学提供的这段代码,假设是针对同一个表的操作,那么这个操作是有问题的;
插入之后,不提交事务是查询不到插入的这条数据的;
不过通常都会在catch块中加入rollback()回滚的,假设异常发生在commit()方法处,或者commit()方法之前,是无法确定数据是不是已经插入的,此时回滚可以保证数据库的干净,不至于出现脏数据。
祝学习愉快!
SSM主流框架入门与综合项目实战2018版
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星