validationQuery不配置,启动时获取到validConnectionChecker 还是做SQL验证,不符合作者的说法啊,为什么这个启动验证难道在1.0.19 这个版本里关不掉吗?
vatpfxk51#
并且,我看了下DruidDataSource的源码validConnectionChecker时默认示例化的,validConnectionChecker中对于validationQuery是否为空也没有检验,请问作者时这是BUG马?
7cjasjjr2#
testWhileIdle/testOnBorrow/testOnReturn配置为true了之后,还是会使用validConnectionChecker的
j7dteeu83#
全部配置为false也还是会,我已经看到了代码了,你没有对是否需要使用validConnectionChecker 做校验,默认是初始化validConnectionChecker 并且直接就调用验证方法了,没有判断,具体代码在DruidAbstractDataSource 类的1249行 只要validConnectionChecker 不为空,直接判断了。
l7wslrjt4#
public void validateConnection(Connection conn) throws SQLException { String query = getValidationQuery(); if (conn.isClosed()) { throw new SQLException("validateConnection: connection closed"); } if (null != query) { if (validConnectionChecker != null) { if (!validConnectionChecker.isValidConnection(conn, query, validationQueryTimeout)) { throw new SQLException("validateConnection false"); } return; } } }
并没有对testWhileIdle/testOnBorrow/testOnReturn 是否为false进行判断。
4条答案
按热度按时间vatpfxk51#
并且,我看了下DruidDataSource的源码validConnectionChecker时默认示例化的,validConnectionChecker中对于validationQuery是否为空也没有检验,请问作者时这是BUG马?
7cjasjjr2#
testWhileIdle/testOnBorrow/testOnReturn配置为true了之后,还是会使用validConnectionChecker的
j7dteeu83#
全部配置为false也还是会,我已经看到了代码了,你没有对是否需要使用validConnectionChecker 做校验,默认是初始化validConnectionChecker 并且直接就调用验证方法了,没有判断,具体代码在DruidAbstractDataSource 类的1249行 只要validConnectionChecker 不为空,直接判断了。
l7wslrjt4#
并没有对testWhileIdle/testOnBorrow/testOnReturn 是否为false进行判断。