如果使用的是JDBC,在JDBC URL上添加?autoReconnect=true,如:
jdbc:mysql://10.10.10.10:3306/mydb?autoReconnect=true
如果是在Spring中使用DBCP连接池,在定义datasource增加属性validationQuery和testOnBorrow,如:
<bean id="vrsRankDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"></property>
<property name="url" value="${countNew.jdbc.url}"></property>
<property name="username" value="${countNew.jdbc.user}"></property>
<property name="password" value="${countNew.jdbc.pwd}"></property>
<property name="initialSize" value="10"></property>
<property name="testWhileIdle" value="true"></property>
<property name="testOnBorrow" value="true"></property>
<property name="testOnReturn" value="false"></property>
<property name="validationQuery" value="select 1"></property>
<property name="timeBetweenEvictionRunsMillis" value="-1"></property>
<property name="numTestsPerEvictionRun" value="3"></property>
<property name="minEvictableIdleTimeMillis" value="1800000"></property>
</bean>
如果是在Spring中使用c3p0连接池,则在定义datasource的时候,添加属性testConnectionOnCheckin和testConnectionOnCheckout,如:
<bean name="cacheCloudDB" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${cache.url}"></property>
<property name="user" value="${cache.user}"></property>
<property name="password" value="${cache.password}"></property>
<property name="initialPoolSize" value="10"></property>
<property name="maxPoolSize" value="${cache.maxPoolSize}"></property>
<property name="testConnectionOnCheckin" value="false"></property>
<property name="testConnectionOnCheckout" value="true"></property>
<property name="preferredTestQuery" value="SELECT 1"></property>
</bean>
如果使用的是Mybatis,
<!--鉴权连接-->
<bean id="userSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName">
<value>${user.source.driverClassName}</value>
</property>
<property name="url">
<value>${user.source.url}</value>
</property>
<property name="username">
<value>${user.source.username}</value>
</property>
<property name="password">
<value>${user.source.passwd}</value>
</property>
<property name="MaxActive">
<value>255</value>
</property>
<property name="minIdle">
<value>1</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
<property name="MaxWait">
<value>120000</value>
</property>
<property name="initialSize" value="10" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="false" />
<property name="validationQuery" value="select 1" />
<property name="timeBetweenEvictionRunsMillis" value="-1" />
<property name="numTestsPerEvictionRun" value="3" />
<property name="minEvictableIdleTimeMillis" value="1800000" />
</bean>