【发布时间】:2011-04-06 07:02:03
【问题描述】:
有没有办法在不抛出异常的情况下检查连接是否会提交?
我知道可延迟外键约束仅在事务提交时强制执行。
JDBC (java 6) API 是否提供任何方法来询问数据库自连接开始(或上次提交)以来的所有操作是否成功?
问候, 巴勃罗。
【问题讨论】:
标签: java jdbc transactions connection
有没有办法在不抛出异常的情况下检查连接是否会提交?
我知道可延迟外键约束仅在事务提交时强制执行。
JDBC (java 6) API 是否提供任何方法来询问数据库自连接开始(或上次提交)以来的所有操作是否成功?
问候, 巴勃罗。
【问题讨论】:
标签: java jdbc transactions connection
你不能那样做。提交的过程需要一些时间,并且在任何时候连接都可能丢失(想象有人拔掉电缆)。所以这里没有保证。抓住异常——这就是它们被发明的原因。
【讨论】:
如果您使用的是 Oracle 数据库,您可以在提交前检查是否存在任何延迟约束违规:
Statement stmt = connection.createStatement();
stmt.executeUpdate("SET CONSTRAINTS ALL IMMEDIATE");
【讨论】: