介紹幾個主流的Java連接池
連接池是創建和管理一個連接的緩沖池的技術,這些連接準備好被任何需要它們的線程使用。 下面介紹java連接池。
了解Java連接池我們先要了解數據庫連接池(connection pool)的原理,Java連接池正是數據庫連接池在Java上的應用。——我們知道,對于共享資源,有一個很著名的設計模式:資源池(Resource Pool)。該模式正是為了解決資源的頻繁分配﹑釋放所造成的問題。
為解決上述問題,可以采用數據庫連接池技術。數據庫連接池的基本思想就是為數據庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數量的連接,當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。
我們可以通過設定連接池最大連接數來防止系統無盡的與數據庫連接。更為重要的是我們可以通過連接池的管理機制監視數據庫的連接的數量﹑使用情況,為系統開發﹑測試及性能調整提供依據。
C3P0是一個開放源代碼的JDBC連接池,它在lib目錄中與Hibernate一起發布,包括了實現jdbc3和jdbc2擴展規范說明的Connection 和Statement 池的DataSources 對象。
BoneCP 是一個開源的快速的 JDBC 連接池。BoneCP很小,只有四十幾K(運行時需要log4j和Google Collections的支持,這二者加起來就不小了),而相比之下 C3P0 要六百多K。另外個人覺得 BoneCP 有個缺點是,JDBC驅動的加載是在連接池之外的,這樣在一些應用服務器的配置上就不夠靈活。當然,體積小并不是 BoneCP 優秀的原因,BoneCP 到底有什么突出的地方呢,請看看性能測試報告。
DBCP (Database Connection Pool)是一個依賴Jakarta commons-pool對象池機制的數據庫連接池,Tomcat的數據源使用的就是DBCP。目前 DBCP 有兩個版本分別是 1.3 和 1.4。1.3 版本對應的是 JDK 1.4-1.5 和 JDBC 3,而1.4 版本對應 JDK 1.6 和 JDBC 4。因此在選擇版本的時候要看看你用的是什么 JDK 版本了,功能上倒是沒有什么區別。
Proxool是一個Java SQL Driver驅動程序,提供了對你選擇的其它類型的驅動程序的連接池封裝。可以非常簡單的移植到現存的代碼中。完全可配置。快速,成熟,健壯。可以透明地為你現存的JDBC驅動程序增加連接池功能。
希望通過本文的介紹,沒能給你帶來幫助。
【編輯推薦】