我不確定是否Statement和ResultSet應該每次查詢後關閉或已作出後,我所有的問題(即在同一時間,我關閉連接)?JDBC閉幕資源
糾正我,如果我錯了,但我敢肯定,這兩個工作?
然而,將數據庫最終崩潰,如果我沒有每次查詢後關閉語句,然後進行大量的查詢?
在另一方面,那會是低效和浪費時間的,以保持關閉&創建報表,每次查詢?
我已經閱讀了關於這個問題有很多問這個問題之前,但我仍不明朗。任何幫助表示讚賞,
tre。
我不確定是否Statement和ResultSet應該每次查詢後關閉或已作出後,我所有的問題(即在同一時間,我關閉連接)?JDBC閉幕資源
糾正我,如果我錯了,但我敢肯定,這兩個工作?
然而,將數據庫最終崩潰,如果我沒有每次查詢後關閉語句,然後進行大量的查詢?
在另一方面,那會是低效和浪費時間的,以保持關閉&創建報表,每次查詢?
我已經閱讀了關於這個問題有很多問這個問題之前,但我仍不明朗。任何幫助表示讚賞,
tre。
從http://www.precisejava.com/javaperf/j2ee/JDBC.htm#JDBC118:
儘快使用完的ResultSet 對象的工作,即使Statement對象關閉ResultSet對象 它關閉隱時完成
關閉ResultSet對象時關閉的ResultSet,關閉ResultSet明確地給予機會 垃圾收集器儘可能早地回憶內存,因爲 ResultSet對象可能會佔用大量內存,具體取決於que RY。
概括地說,你不有明確地關閉ResultSet
對象,但最好這樣做早些時候釋放內存。未能關閉對象只會導致其佔用的內存(可能較小或較大,取決於結果集的大小)被佔用,直到相應的對象關閉。
嗨,非常感謝您的回答。我以前讀過這個,但對此不確定 - 這是否意味着我應該在每次查詢後關閉ResultSet,但只能在執行所有查詢後關閉語句?謝謝。 – tre
@tre我詳細闡述了我的答案。讓我知道你是否需要更多的澄清。 –
它做到了,並且對於要求進一步澄清感到抱歉,但它確實有幫助 - 這是否意味着單個聲明的每個結果集都會保留到聲明結束?非常感謝,豎起大拇指。編輯:我必須等待一分鐘,說這是正確的答案:) – tre