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)或者关闭连接。之前的事务也会默认提交。


  • 相关阅读:
    poj 2485 Highways 最小生成树
    hdu 3415 Max Sum of MaxKsubsequence
    poj 3026 Borg Maze
    poj 2823 Sliding Window 单调队列
    poj 1258 AgriNet
    hdu 1045 Fire Net (二分图匹配)
    poj 1789 Truck History MST(最小生成树)
    fafu 1181 割点
    减肥瘦身健康秘方
    人生的问题
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5174411.html
Copyright © 2011-2022 走看看