关于jave在oracle驱动下事务提交与回滚问题
2014-12-18 13:35
363 查看
一直以来,都认为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)或者关闭连接,之前的事务也会默认提交。
于是测试了一下,结果如下(请注意在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驱动下事务提交与回滚问题
- 关于SAP的事务提交和回滚(LUW)
- Pmon和Smon回滚被Kill会话未提交事务引发问题的探讨(旧文初发)
- 使用Maven连接oracle遇到关于驱动的问题
- 关于Spring事务管理无法回滚的问题
- oracle 数据库事务,提交,回滚,保存点,表的锁定,隐式锁,显示锁,写锁,读锁,排他锁,共享锁
- 关于SAP的事务提交和回滚(LUW)
- 关于QT编译ORACLE驱动的问题
- 关于Spring事务回滚的问题
- 关于Spring事务回滚的问题
- 关于Spring事务回滚的问题
- 关于DELPHI使用ORACLE回滚段的问题(急)
- Proxool+hibernate+spring时事务自动回滚导致无法提交的问题解决
- 对ORACLE 已提交的事务进行回滚之详细版和操作版
- 关于SAP的事务提交和回滚(LUW)
- Oracle回滚段满,提交问题解决办法
- 使用事务实现--转账问题:从0001账户转1000块到0002账户。打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
- Oracle(二) – 隐式的事务提交或回滚动作
- 关于Spring事务回滚的问题