【问题标题】:JDBC check if a connection can warantee it will commit without errorsJDBC 检查一个连接是否可以保证它将提交而没有错误
【发布时间】:2011-04-06 07:02:03
【问题描述】:

有没有办法在不抛出异常的情况下检查连接是否会提交?

我知道可延迟外键约束仅在事务提交时强制执行。

JDBC (java 6) API 是否提供任何方法来询问数据库自连接开始(或上次提交)以来的所有操作是否成功?

问候, 巴勃罗。

【问题讨论】:

    标签: java jdbc transactions connection


    【解决方案1】:

    你不能那样做。提交的过程需要一些时间,并且在任何时候连接都可能丢失(想象有人拔掉电缆)。所以这里没有保证。抓住异常——这就是它们被发明的原因。

    【讨论】:

    • @vladimit:那么 XADatasource 如何处理两阶段提交?
    • @vladmir:我的问题可能措辞错误:在可延迟约束的情况下,有没有办法通过 jdbc 要求数据库执行约束检查?
    【解决方案2】:

    如果您使用的是 Oracle 数据库,您可以在提交前检查是否存在任何延迟约束违规:

    Statement stmt = connection.createStatement();
    stmt.executeUpdate("SET CONSTRAINTS ALL IMMEDIATE");
    

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 2017-12-22
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多