數據庫鏈接池DBCP和C3P0的使用

hibernate開發組推薦使用c3p0; 
spring開發組推薦使用dbcp;
hibernate in action推薦使用c3p0;mysql

 

一. dbcp 在數據庫服務器強行關閉鏈接或數據庫服務重啓後,沒法reconnectweb

二. dbcp 鏈接池的建立速度優於c3p0,而c3p0的性能更加穩定spring

三. mysql8小時問題的解決方式不一樣:sql

    衆所周知,mysql在使用過程當中,一個鏈接在8小時內無任何操做時,該鏈接會被斷開,而鏈接池中的鏈接並不會感知該斷開操做。dbcp和c3p0給出了不一樣的解決方案:數據庫

    dbcp須要添加兩個配置參數:服務器

 <set-property property="testOnBorrow" value="true"/>
 <set-property property="validationQuery" value="select 1"/>

    testOnBorrow的意思是從數據庫鏈接池中取得鏈接時,對其的有效性進行檢查
    validationQuery 是用來檢查的SQL語句,「select 1」執行較快,是一個不錯的檢測語句
性能

    c3p0須要添加一個參數:spa

<property name="maxIdleTime"value="1800"/>

   maxIdleTime是鏈接池內鏈接的生存週期,使之小於mysql服務器上所設置的wait_timeout 的值hibernate

相關文章
相關標籤/搜索