首页 > 数据库技术 > 详细

关于jave在oracle驱动下事务提交与回滚问题

时间:2014-12-18 15:19:09      阅读:258      评论:0      收藏:0      [点我收藏+]

一直以来,都认为Connection如果设置了setAutoCommit(false)后,启动手工事务提交,必须手工进行commit或者rollback才行。今天正好遇到一个问题,结果大跌眼镜。

于是测试了一下,结果如下(请注意在oracle驱动下,其他环境未知):

1、设置了setAutoCommit(false)后执行后续DML的数据更新操作,没有显式手工进行commit或者rollback,最后设置setAutoCommit(true),后关闭连接,默认提交成功。

2、设置了setAutoCommit(false)后执行后续DML的数据更新操作,执行两段sql更新,中间rollback,第一部分回滚,第二部分不显式手工进行commit,默认提交。

3、设置了setAutoCommit(false)后执行后续DML的数据更新操作,没有显式手工进行commit或者rollback,最后没有设置setAutoCommit(true),关闭连接,默认提交成功。


小结:设置了setAutoCommit(false)后,除非显式rollback,否则默认提交;没有任何显式commit或rollback,设置设置setAutoCommit(true)或者关闭连接,之前的事务也会默认提交。


关于jave在oracle驱动下事务提交与回滚问题

原文:http://blog.csdn.net/luckysunny745/article/details/42004313

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!