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