簡體   English   中英

准備好的語句共享連接

[英]prepared statements sharing connection

有一個示例顯示使用事務:

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調用與其他資源一起保留在父級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM