MyBatis 使用的数据库连接池可能会在某些情况下丢失与数据库的连接。为了确保连接池能够自动恢复,你可以配置连接池的自动恢复策略。
以下是一个使用 HikariCP 连接池的 MyBatis 配置示例,它配置了自动恢复策略:
<configuration>
<!-- 其他配置... -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/yourdatabase"/>
<property name="username" value="yourusername"/>
<property name="password" value="yourpassword"/>
<!-- 配置 HikariCP 的自动恢复策略 -->
<property name="autoCommit" value="false"/>
<property name="connectionTimeout" value="30000"/>
<property name="idleTimeout" value="600000"/>
<property name="maxLifetime" value="1800000"/>
<property name="maximumPoolSize" value="10"/>
<!-- 其他 HikariCP 属性配置 -->
</dataSource>
</environment>
</environments>
</configuration>
在这个配置中,maxLifetime
属性定义了连接的最大生命周期,超过这个时间连接会被自动丢弃。idleTimeout
属性定义了连接在多长时间没有被使用后会被自动回收。connectionTimeout
属性设置了数据库连接的超时时间。
确保你的 MyBatis 版本与连接池(例如 HikariCP)兼容,并且根据你使用的数据库以及连接池的文档调整这些设置。