2012-08-09 128 views
2

可能重複:
Prepared statement pooling in dbcpPreparedStatement的池連接池

我建立一個使用Tomcat的數據庫連接池機制,其內部使用的Web應用程序。我正在嘗試彙總準備好的語句,以便應用程序在檢索數據時更高效。

據我所知,當連接,結果集和語句關閉時,連接返回到池。如果設置了適當的標誌,則放棄的連接也會關閉並返回到池中。關閉連接意味着釋放所有數據庫遊標和包含預準備語句的高速緩存語句。那麼準備好的聲明彙集的意義是什麼?

回答

8

一個通用的答案:)

連接對象是不是真的關閉,但只返回給你的時候調用close()和準備好的語句池工程對每個連接的基礎,只要它們被緩存的連接池對象保持活動。

+5

這裏關鍵的洞察是池給你的對象不是真正的連接和聲明,它們是包裝器。當你關閉它們時,你將真實的東西返回到池中而不是關閉它們。 – 2012-08-09 19:33:42

+0

我期待着這個答案無處不在,但無法找到它。我讀了Apache Commons DBCP,它有一個名爲{PoolableConnection}的包裝類,其中調用close()只是返回對象而不關閉連接,但我不確定。謝謝(你的)信息。 – BegaluruBoy 2012-08-10 02:44:58