准备好的语句共享连接



有一个例子显示使用事务:

con.setAutoCommit(false);
updateSales = con.prepareStatement(updateString);
updateTotal = con.prepareStatement(updateStatement);
...
con.commit();
...
finally
updateSales close
updateTotal close

如果我想将两个准备好的语句移动到共享连接/事务的单独方法中,每个方法都从父方法调用,我不知道如何处理关闭准备好的语句,因为父方法将打开连接然后提交它。

parentmethod:
con.setAutoCommit(false)
method1(con)
method2(con)
con.commit()

不需要这样设计它。我觉得把更新分开是合乎逻辑的。

为什么不将PreparedStatement的作用域设置为类级别?然后,父方法可以有一个finally块来关闭子方法可能打开的所有资源。

这仍然不是最好的解决方案(通常您希望使用打开资源的相同方法来关闭资源)。

在我看来,优雅的方法是将PreparedStatement调用保持在父级,以及其他资源。

最新更新