我在Java EE中編寫代碼,並且有一些類可以管理我的數據庫的所有操作。何時打開和關閉與DB的連接
我在問自己什麼時候應該打開/關閉與數據庫的連接。
在每種方法中打開和關閉它會更好嗎? 還是在構造函數中打開它並在完成使用我的類時關閉它會更好?
Thx
我在Java EE中編寫代碼,並且有一些類可以管理我的數據庫的所有操作。何時打開和關閉與DB的連接
我在問自己什麼時候應該打開/關閉與數據庫的連接。
在每種方法中打開和關閉它會更好嗎? 還是在構造函數中打開它並在完成使用我的類時關閉它會更好?
Thx
沒有通用的解決方案。所有的決定取決於具體的任務。你應該記住下面的東西:
select 'some random text' from dual
;如果您沒有將來使用方法的信息,我建議使用時間有限的permament連接。它應該打開第一個查詢,並關閉定時器,如果方法沒有通過此連接查詢一段時間,如3-5秒。當然,任何查詢者都應該在查詢之前檢查連接狀態。打開它,如果它關閉,觸摸關閉計時器。並且不要忘記在析構函數處顯式關閉連接。
我認爲你不應該在代碼中管理它。我所從事的每個EE服務器都有連接池,以免您需要關心此問題。基本上,當你需要時你「打開」連接,當你需要時「關閉」連接。這些單詞用引號括起來,因爲當連接真正打開和關閉時,由池來管理。
從設計角度來看,只有在需要時才使用連接。對象構造沒有任何意義 - 如果類中的某個方法沒有被調用一個小時會怎麼樣?當你不需要時打開它的目的是什麼?所以如果一個方法需要連接打開並在方法中關閉它。
雖然這個問題很常見,但它太泛化了。添加一些例子,甚至預期的情景,否則人們會將您的問題標記爲「主要基於意見」......從文本中:許多優秀的問題根據專家的經驗產生一定程度的意見,但對這個問題的回答往往會幾乎完全基於意見,而不是事實,參考或具體專業知識。 – Bonatti