鏈接池:鏈接複用,避免了數據庫鏈接頻繁創建、關閉的開銷。經過以及一套鏈接使用、分配、治理策略,使得該鏈接池中的鏈接能夠獲得高效、安全的複用。html
1.c3p0:java
(1)C3P0是一個開源的JDBC鏈接池,它實現了數據源和JNDI綁定,支持JDBC3規範和JDBC2的標準擴展。目前使用它的開源項目有Hibernate,Spring等。spring
(2)<!-- C3P0數據源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}"></property><!-- 數據庫驅動 -->
<property name="jdbcUrl" value="${jdbc.url}"></property><!-- 數據庫連接地址 -->
<property name="user" value="${jdbc.user}"></property><!-- 數據庫帳號 -->
<property name="password" value="${jdbc.password}"></property><!-- 數據庫密碼 -->
<property name="maxPoolSize" value="25"></property><!-- 鏈接池中保留的最大鏈接數 -->
<property name="minPoolSize" value="5"></property><!-- 鏈接池中保留的最小鏈接數 -->
<property name="initialPoolSize" value="5"></property><!-- 鏈接池中初始化鏈接數量 -->
<property name="maxIdleTime" value="3600"></property><!--最大空閒時間,3600秒內未使用則鏈接被丟棄。若爲0則永不丟棄。Default: 0 -->
<property name="idleConnectionTestPeriod" value="300"></property><!--每300秒檢查全部鏈接池中的空閒鏈接。Default: 0 -->
</bean>數據庫
2.dbcp:apache
(1)DBCP(DataBase Connection Pool)數據庫鏈接池,是java數據庫鏈接池的一種,由Apache開發,經過數據庫鏈接池,能夠讓程序自動管理數據庫鏈接的釋放和斷開。使用dbcp須要2個包:commons-dbcp.jar,commons-pool.jar.安全
(2)<bean id ="dataSource" class ="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}"></property><!-- 數據庫驅動 -->
<property name="jdbcUrl" value="${jdbc.url}"></property><!-- 數據庫連接地址 -->
<property name="user" value="${jdbc.user}"></property><!-- 數據庫帳號 -->
<property name="password" value="${jdbc.password}"></property><!-- 數據庫密碼 -->
<property name="maxActive" value="30"/><!--maxActive: 最大鏈接數量-->
<property name="maxIdle" value="7"/><!--maxIdle: 最大空閒鏈接-->
<property name="maxWait" value="2000" /><!--maxWait: 超時等待時間以毫秒爲單位 -->
<property name="initialSize" value="5" /><!--initialSize: 初始化鏈接-->
<property name="testWhileIdle" value="true" /><!--指明鏈接是否被空閒鏈接回收器(若是有)進行檢驗.若是檢測失敗,則鏈接將被從池中去除.-->
<property name="validationQuery" value="SELECT 1 " /><!--SQL查詢,用來驗證從鏈接池取出的鏈接-->
</bean>框架
總結:url
dbcp沒有自動回收空閒鏈接的功能htm
c3p0有自動回收空閒鏈接功能開發
因此咱們在使用spring框架開發項目比較經常使用c3p0