连接池框架-C3P0

[b]连接池框架-C3P0[/b]

1.简介  
C3P0是一个开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用它的开源项目有Hibernate,Spring等。

2.在与Spring结合中配置如下:
<!-- Properties文件读取配置,db的properties -->
<context:property-placeholder location="classpath:resources/config/db.properties"/>

<!-- c3p0 connection pool configuration -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 数据库驱动 -->
<property name="driverClass" value="${db.driver.class}" />
<property name="jdbcUrl" value="${db.url}" />
<property name="user" value="${db.username}" />
<property name="password" value="${db.password}" />

<!-- 初始化连接池时连接数量为5个 -->
<property name="initialPoolSize" value="5" />
<!-- 允许最小连接数量为5个 -->
<property name="minPoolSize" value="5" />
<!-- 允许最大连接数量为20个 -->
<property name="maxPoolSize" value="20" />
<!-- 允许连接池最大生成100个PreparedStatement对象 -->
<property name="maxStatements" value="100" />
<!-- 连接有效时间,连接超过3600秒未使用,则该连接丢弃 -->
<property name="maxIdleTime" value="3600" />
<!-- 连接用完时,一次产生的新连接步进值为2 -->
<property name="acquireIncrement" value="2" />
<!-- 获取连接失败后再尝试10次,再失败则返回DAOException异常 -->
<property name="acquireRetryAttempts" value="10" />
<!-- 获取下一次连接时最短间隔600毫秒,有助于提高性能 -->
<property name="acquireRetryDelay" value="600" />
<!-- 检查连接的有效性 -->
<property name="testConnectionOnCheckin" value="true" />
<property name="testConnectionOnCheckout" value="false" />
<!-- 每个1200秒检查连接对象状态 -->
<property name="idleConnectionTestPeriod" value="1200" />
<!-- 获取新连接的超时时间为10000毫秒 -->
<property name="checkoutTimeout" value="10000" />

<property name="autoCommitOnClose" value="false" />
<property name="loginTimeout" value="100" />
<property name="breakAfterAcquireFailure" value="false" />
<property name="preferredTestQuery" value="select 1" />
</bean>

3.与Hibernate结合配置
在hibernate.cfg.xml文件里面加入如下的配置:   
<!-- 最大连接数 -->   
<property name="hibernate.c3p0.max_size">20</property>
  
<!-- 最小连接数 -->   
<property name="hibernate.c3p0.min_size">5</property>
  
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->   
<property name="hibernate.c3p0.timeout">120</property>  
 
<!-- 最大的PreparedStatement的数量 -->   
<property name="hibernate.c3p0.max_statements">100</property>
  
<!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->   
<property name="hibernate.c3p0.idle_test_period">120</property>
  
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->   
<property name="hibernate.c3p0.acquire_increment">2</property>
  
<!-- 每次都验证连接是否可用 -->   
<property name="hibernate.c3p0.validate">true</property>

4.c3p0与dbcp区别
dbcp没有自动的回收空闲连接   
c3p0有自动回收空闲连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值