我有适用于所有数据库的通用jdbc代码。
我有一些与事务和保存点一起使用的API。

问题是某些数据库要求您手动释放保存点

 conn.releaseSavepoint(savepoint1)

有一些在您手动发布时就大肆宣传(最著名的是Oracle)。

如何在运行时检查数据库是否具有自动保存点释放功能,或者是否需要执行该操作
手动。还有,我有一些不错的API。我不想捕获异常(exception),这很丑陋
并且在这种情况下容易出错。引发的异常是java.sql.SqlException,而不是类似“FeatureUnsupportedException”的东西。因此,如果存在真正的错误并且我愚蠢地捕获了它,那么我可能会在整个事务中完全失败。

谢谢

最佳答案

In Oracle's 10g documentation,我可以发现不支持此特定的JDBC/ojdbc方法的事实:



在11g中,the documentation seems to claim否则:



但我也可以轻松地在11g中重现您的问题。

关于java - JDBC检查功能-保存点发布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10667292/

10-11 10:38