c3p0数据源的使用
在tomcat/config/service.xml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <Resource name="jdbc/hb" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource" /> 2 <ResourceParams name="jdbc/hb"> 3 <parameter> 4 <name>factory</name> 5 <value>org.apache.naming.factory.BeanFactory</value> 6 </parameter> 7 <parameter> 8 <name>driverClass</name> 9 <value>oracle.jdbc.driver.OracleDriver</value> 10 </parameter> 11 <parameter> 12 <name>jdbcUrl</name> 13 <value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value> 14 </parameter> 15 <parameter> 16 <name>user</name> 17 <value>hb</value> 18 </parameter> 19 <parameter> 20 <name>password</name> 21 <value>hb</value> 22 </parameter> 23 <parameter> 24 <name>minPoolSize</name> 25 <value>30</value> 26 </parameter> 27 <parameter> 28 <name>maxPoolSize</name> 29 <value>200</value> 30 </parameter> 31 <parameter> 32 <name>initialPoolSize</name> 33 <value>30</value> 34 </parameter> 35 <parameter> 36 <name>acquireIncrement</name> 37 <value>30</value> 38 </parameter> 39 <parameter> 40 <name>idleConnectionTestPeriod</name> 41 <value>60</value> 42 </parameter> 43 <parameter> 44 <name>maxIdleTime</name> 45 <value>60</value> 46 </parameter> 47 </ResourceParams>
driverClass
jdbcUrl
user
password
上面四个分别是驱动,连接字符串,用户名和密码
minPoolSize
maxPoolSize
initialPoolSize
acquireIncrement 池中没有空闲连接时,一次请求获取的连接数
maxIdleTime 池中连接最大空闲时间
acquireRetryAttempts 获取连接失败后,重新尝试的次数
acquireRetryDelay 尝试连接间隔时间,毫秒
checkoutTimeout 等待连接时间,0为无限等待,毫秒
DebugUnreturnedConnectionStackTraces true,false,是否收回未返回的活动连接
unreturnedConnectionTimeout 活动连接的时间.
c3p0中的问题:
unreturnedConnectionTimeout是给每个活动连接一个时间限制,到点儿就收回,不管有没有正在使用连接.这样不是太好,应该是从最后一次使用连接才开始计时才好.
c3p0与dbcp区别:
dbcp没有自动的去回收空闲连接的功能 c3p0有自动回收空闲连接功能