JDBC 检查连接是否可以保证它将无错误地提交

发布于 2024-10-30 15:56:49 字数 148 浏览 0 评论 0原文

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

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

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

问候, 巴勃罗.

Is there a way of checking if a connection will commit without throwing an exception?

I know deferrable foreign key constraints are only enforced at transaction commit.

Does the JDBC (java 6) API provide any method to ask the database whether all operations since the connection began (or last commit) would be successfull?

Regards,
Pablo.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

如梦亦如幻 2024-11-06 15:56:49

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

You can't do that. The process of committing takes sometime and in any moment connection can be lost(imagine somebody unplugs the cabel). So no guarantees here. Just catch the exceptions - that why they were invented.

宣告ˉ结束 2024-11-06 15:56:49

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

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

If you're using an Oracle database you can check if there are any deferred constraint violations before commit with:

Statement stmt = connection.createStatement();
stmt.executeUpdate("SET CONSTRAINTS ALL IMMEDIATE");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文