Spring 中 C3p0 connection pooling 连接池的配置
在Spring 项目中使用 C3p0 - JDBC3 Connection and Statement Pooling
C3p0 Document 在http://www.mchange.com/projects/c3p0/index.html
Spring 的 DataSource bean 定义如下, 把可变的变量抽出放在jdbc.properties file中, 方便修改 jdbc.properties file只要放在当前项目的classes路径下,或放在Tomcat 的Shared/classes下, Spring 就可以找到
<bean id="propertyConfigurer" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="autoCommitOnClose" value="true"/> <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/> <property name="initialPoolSize" value="${cpool.minPoolSize}"/> <property name="minPoolSize" value="${cpool.minPoolSize}"/> <property name="maxPoolSize" value="${cpool.maxPoolSize}"/> <property name="maxIdleTime" value="${cpool.maxIdleTime}"/> <property name="acquireIncrement" value="${cpool.acquireIncrement}"/> <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/> </bean>
jdbc.properties # Database URLjdbc.url=jdbc:mysql://192.168.0.25"3306/db# Database login informationjdbc.username=rootjdbc.password=# Time to wait for an open connection before timing out# (in milliseconds)cpool.checkoutTimeout=5000# Connection pool sizecpool.minPoolSize=5cpool.maxPoolSize=40# How long to keep unused connections around(in seconds)# Note: MySQL times out idle connections after 8 hours(28,800 seconds)# so ensure this value is below MySQL idle timeoutcpool.maxIdleTime=25200# How long to hang on to excess unused connections after traffic spike# (in seconds)cpool.maxIdleTimeExcessConnections=1800# Acquiring new connections is slow, so eagerly retrieve extra connections# when current pool size is reachedcpool.acquireIncrement=5