手记

[Spring] 解决MySQL8小时断线问题

问题

MySQL数据库里,在经过8小时(默认时间)不访问数据库后,其连接会被MySQL关闭,然而c3p0连接池里依旧保留着这个被关闭的连接。所以在8小时后,突然有操作访问数据库时,会报错提示连接无效。

解决

c3p0配置
spring.xml部分代码

<!-- 配置数据源,记得去掉myBatis-mapper.xml的数据源相关配置 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}" />
        <property name="jdbcUrl" value="${jdbc.url}" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />

        <!-- 解决一段时间后mysql关闭连接 -->
        <property name="maxIdleTime">
            <value>28000</value>
        </property>
        <property name="idleConnectionTestPeriod">
            <value>28000</value>
        </property>

    </bean>
具体解析




作者:萌璐琉璃
链接:https://www.jianshu.com/p/a7d06b669295


0人推荐
随时随地看视频
慕课网APP