目前常用的數據源主要有c3p0、dbcp、proxool、druid,先來說說他們
Spring 推薦使用dbcp;
Hibernate 推薦使用c3p0和proxool
1、 DBCP:apache
DBCP(DataBase connection pool)數據庫連接池。是apache上的一個 java連接池項目,也是 tomcat使用的連接池組件。單獨使用dbcp需要3個包:common-dbcp.jar,common-pool.jar,common-collections.jar由於建立數據庫連接是一個非常耗時耗資源的行為,所以通過連接池預先同數據庫建立一些連接,放在內存中,應用程序需要建立數據庫連接時直接到連接池中申請一個就行,用完後再放回去。dbcp沒有自動的去回收空閒連接的功能。
2、 C3P0:
C3P0是一個開源的jdbc連接池,它實現了數據源和jndi綁定,支持jdbc3規范和jdbc2的標准擴展。c3p0是異步操作的,緩慢的jdbc操作通過幫助進程完成。擴展這些操作可以有效的提升性能。目前使用它的開源項目有Hibernate,Spring等。c3p0有自動回收空閒連接功能。
3、 Proxool:Sourceforge
Proxool是一種Java數據庫連接池技術。是sourceforge下的一個開源項目,這個項目提供一個健壯、易用的連接池,最為關鍵的是這個連接池提供監控的功能,方便易用,便於發現連接洩漏的情況。
綜合來說,穩定性是dbcp>=c3p0>proxool
後來阿裡巴巴的druid開源了,可以是前無古人後無來者,最強沒有之一,是否的穩定,在大並發中表現十分好
今天來介紹的主要是監控,德魯伊提供的這個監控組件,非常的便利,截圖如下:
這是針對所有sql的監控,運行效率等等都能看到
對於url的監控,請求時間,並發等等,非常便利
監控session,這是我當前登錄的
總的來說,這個數據源還是不錯的,非常推薦,如今也已經到了1.0.23版本
<!-- 連接池 阿裡巴巴數據源 全世界最牛逼的data source 沒有之一 --> <druid.version>1.0.23</druid.version> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency>