<environments default="development">
<environment id="development">
<transactionManager type="jdbc"/>
<dataSource type="POOLED">
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
<property name="poolPingEnabled" value="true"/>
<property name="poolPingQuery" value="select 1"/>
<property name="poolPingConnectionsNotUsedFor" value="3600000"/>
</dataSource>
</environment>
</environments>
配置连接池时,需要声明三个属性:
poolPingEnabled - 默认值是false,当值为true的时候,将开启ping机制。
poolPingQuery - 对数据库进行ping时所使用的sql。
poolPingConnectionsNotUsedFor -默认值是0,单位是毫秒。我们不能在每次使用连接池之前,都使用ping机制,这会使每一条sql的执行,都要额外执行一次ping语句。所以使用此属性来避免这种不合理做法。我们只针对闲置时间超过某个时间的连接,进行ping。本例中的值为1小时,当从连接池中拿出的连接闲置超过1小时,才会对它进行ping。