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" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:jdbc.properties</value> </property> </bean> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" 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 URL jdbc.url=jdbc:mysql://192.168.0.25"3306/db # Database login information jdbc.username=root jdbc.password= # Time to wait for an open connection before timing out # (in milliseconds) cpool.checkoutTimeout=5000 # Connection pool size cpool.minPoolSize=5 cpool.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 timeout cpool.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 reached cpool.acquireIncrement=5