mysql、c3p0连接池常用配置及mysql8小时失效问题
原创 bluesky 发表于:2017-03-24 10:11:00
  阅读 :2140   收藏   编辑

c3p0连接池官方文档地址http://www.mchange.com/projects/c3p0/index.html

数据库连接的用户名和密码一般不是明文,请不要效仿!!

app.properties配置:

#---------------------------------------------------------
# c3p0连接池配置
#---------------------------------------------------------

#如果设为true那么在每个connection提交的时候都 将校验其有效性,因性能消耗大请只在需要的时候使用它
jdbc.c3p0.testConnectionOnCheckout=false

#取得连接的同时将校验连接的有效性,默认false
jdbc.c3p0.testConnectionOnCheckin=true

#隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查要小于MySQL的wait_timeout,防止8小时失效问题28800
jdbc.c3p0.idleConnectionTestPeriod=3600

#初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值,默认为3
jdbc.c3p0.initialPoolSize=50

#连接池中保留的最小连接数,默认为15
jdbc.c3p0.minPoolSize=30

#连接池中保留的最大连接数,默认为15
jdbc.c3p0.maxPoolSize=150

#最大空闲时间,超过空闲时间的连接将被丢弃。为0或负数则永不丢弃,默认为0
jdbc.c3p0.maxIdleTime=3600

#连接池在无空闲连接可用时一次性创建的新数据库连接数,默认为3
jdbc.c3p0.acquireIncrement=10

#连接池在获得新连接失败时重试的次数,如果小于等于0则无限重试直至连接获得成功。默认为30
jdbc.c3p0.acquireRetryAttempts=5

#:两次连接中间隔时间,单位毫秒,连接池在获得新连接时的间隔时间。默认1000
jdbc.c3p0.acquireRetryDelay=1000

#mysql 
jdbc.driverClassName=com.mysql.jdbc.Driver

#mysql连接URL
jdbc.url=jdbc:mysql://127.0.0.1:3306/masterDB?Unicode=true&characterEncoding=UTF-8&allowMultiQueries=true

#用户名
jdbc.username=root

#密码
jdbc.password=root

spring 配置代码片段

<!-- 读取classpath下的app.properties配置 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:app.properties</value>
            </list>
        </property>
    </bean>
  <!--  dataSource -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" 
        p:driverClass="${jdbc.driverClassName}"
        p:jdbcUrl="${jdbc.url}" 
        p:user="${jdbc.username}" 
        p:password="${jdbc.password}"
        p:testConnectionOnCheckout="${jdbc.c3p0.testConnectionOnCheckout}"
        p:testConnectionOnCheckin="${jdbc.c3p0.testConnectionOnCheckin}"
        p:idleConnectionTestPeriod="${jdbc.c3p0.idleConnectionTestPeriod}"
        p:initialPoolSize="${jdbc.c3p0.initialPoolSize}" 
        p:minPoolSize="${jdbc.c3p0.minPoolSize}"
        p:maxPoolSize="${jdbc.c3p0.maxPoolSize}" 
        p:maxIdleTime="${jdbc.c3p0.maxIdleTime}"
        p:acquireIncrement="${jdbc.c3p0.acquireIncrement}" 
        p:acquireRetryAttempts="${jdbc.c3p0.acquireRetryAttempts}" 
        p:acquireRetryDelay="${jdbc.c3p0.acquireRetryDelay}"  />