JDBC连接池的testQuery/validationQuery设置

Posted CRayFish07

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC连接池的testQuery/validationQuery设置相关的知识,希望对你有一定的参考价值。

在《Tomcat中使用Connector/J连接MySQL的超时问题》帖子中想要增加对连接池中连接的测试/验证,防止数据库认为连接已死而Web应用服务器认为连接还有效的问题,mysql文档中提到Tomcat文档中的例子中用的是validationQuery,但是网上还有很多帖子写的是testQuery,到底用哪一个呢?

 



此外,测试/验证连接池连接的SQL语句也因数据库而异:
Efficient SQL test query or validation query that will work across all (or most) databases
DBCP - validationQuery for different Databases

综合上述两个帖子,汇总结果如下:

数据库测试/验证查询
MySQL SELECT 1
PostgreSQL SELECT 1
Microsoft SQL Server SELECT 1
SQLite SELECT 1
H2 SELECT 1
Ingres SELECT 1
Oracle select 1 from dual
DB2 select 1 from sysibm.sysdummy1 或
SELECT current date FROM sysibm.sysdummy1
Apache Derby VALUES 1 FROM SYSIBM.SYSDUMMY1 或
SELECT 1 FROM SYSIBM.SYSDUMMY1
HSQLDB SELECT 1 FROM any_existing_table WHERE 1=0 或
SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS
Informix select count(*) from systables










以上是关于JDBC连接池的testQuery/validationQuery设置的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot MySQL JDBC无法创建池的初始连接

关于jdbc和数据库连接池的关系(不是封装的关系)

JDBC之Druid连接池的使用

三种数据库连接池的配置及使用(For JDBC)

JDBC连接数据库以及druid数据库连接池的使用,有需要的看过来哦!

JDBC连接数据库以及druid数据库连接池的使用,有需要的看过来哦!