數據鏈接池c3p0和dbcp使用

鏈接池:鏈接複用,避免了數據庫鏈接頻繁創建、關閉的開銷。經過以及一套鏈接使用、分配、治理策略,使得該鏈接池中的鏈接能夠獲得高效、安全的複用。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

相關文章
相關標籤/搜索