zoukankan      html  css  js  c++  java
  • 关于jave在oracle驱动下事务提交与回滚问题

    一直以来,都觉得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)或者关闭连接。之前的事务也会默认提交。


  • 相关阅读:
    HTTP接口测试
    1 ThinkPHP MVC框架初识
    解决python2.7 scripts和pip缺失问题
    图片重绘
    Oracle数据库提权
    二阶注入
    去重算法,简单粗暴&优化版
    常用集合
    冒泡排序 -- 算法原理
    MySQL-配置环境变量及修改密码(附-mysql安装教程)
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5174411.html
Copyright © 2011-2022 走看看