配置 MyBatis 使用轻量级 MySQL ping /* ping */

configuring MyBatis to use lightweight MySQL ping /* ping */

使用 JDBC MySQL 驱动程序(v5.1.3 及更高版本),可以通过前缀发出 "lightweight" ping 而不是提供的 SQL 语句/* ping */

例如:/* ping */ SELECT 1

我正在尝试配置 myBatis 来使用它,但它不起作用。我可以确认原始 SQL 是 运行 而不是轻量级的 ping,方法是使用 xRebel(分析工具)或用非常慢的语句交换 SELECT 1

有谁知道这是为什么,或者如何解决这个问题?

来自我的副本 myBatisMapperConfig.xml

<environments default="dev">
    <environment id="dev">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver" />
            <property name="url" value="${db.dev.url}" />
            <property name="username" value="${db.dev.username}" />
            <property name="password" value="${db.dev.password}" />
            <property name="poolPingQuery" value="/* ping */ SELECT 1" />
            <property name="poolPingEnabled" value="true" />
            <property name="poolMaximumActiveConnections" value="50" />
            <property name="poolMaximumIdleConnections" value="5" />
            <property name="poolMaximumCheckoutTime" value="10000" />
        </dataSource>
    </environment>

解释轻量级 ping 的参考资料:

解释在 myBatis 中 ping 连接的参考资料(搜索 "poolPingQuery"):

您可能已经想到了这一点,但您还需要设置 poolPingConnectionsNotUsedFor。默认值为 0,即使使用 poolPingEnabled 也不会在没有时间(以毫秒为单位)的情况下执行 ping。

您链接的参考文献提到了它,但默认值 0 意味着它不会执行 ping 并不明显:/