Mybatis之——Druid + mysql8报错:应用方的数据库连接有效期时间,大于数据库自己设置的有效期。

解决方法:

  • jdbcConfig.properties
    1
    2
    3
    4
    5
    6
    7
    8

    jdbc.username=cinema
    jdbc.password=123456
    jdbc.url=jdbc:mysql://localhost:3306/cinema?characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false
    jdbc.driver=com.mysql.cj.jdbc.Driver
    #jdbc.driver=com.mysql.jdbc.Driver


  • applicationContext.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="url" value="${jdbc.url}"/>
<!-- druid数据库连接的心跳检测,防止数据库断开连接-->
<property name="keepAlive" value="true" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒-->
<property name="timeBetweenEvictionRunsMillis" value="10000"/>
<!-- 单位:秒,检测连接是否有效的超时时间-->
<property name="validationQueryTimeout" value="3"/>
<!-- 配置一个连接在池中最小生存的时间-->
<property name="minEvictableIdleTimeMillis" value="30000"/>
<!-- 连接池里的连接的最大生存时间 ,单位是毫秒 2h-->
<property name="maxEvictableIdleTimeMillis" value="7200000"/>
<property name="validationQuery" value="SELECT 1"/>
<!-- 申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true-->
<property name="testOnBorrow" value="false"/>
<!-- 归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true-->
<property name="testOnReturn" value="false"/>
<!-- 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。-->
<property name="testWhileIdle" value="true"/>
</bean>