DBCP - validationQuery对于不同的数据库DBCP - validatio

2019-05-14 09:46发布

我使用DBCP池,我想用testOnBorrowtestOnReturn来测试连接是否仍然有效。
不幸的是我必须设置属性validationQuery,使其工作。

问: 应在validationQuery什么样的价值?

我知道,那:validationQuery必须是一个SQL SELECT语句,返回至少一行。

问题是,我们使用各种数据库(DB2,甲骨文,HSQLDB)。

Answer 1:

这里不仅是一个validationQuery所有数据库。 在每个数据库必须使用不同的validationQuery。

谷歌搜索和测试的几个小时后,我已经收集了此表:

数据库validationQuery笔记

  • HSQLDB - select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
  • 甲骨文 - select 1 from dual
  • DB2 - select 1 from sysibm.sysdummy1
  • MySQL的 - select 1
  • Microsoft SQL Server的 - select 1 (SQL-Server 9.0中,所测试10.5 [2008])
  • PostgreSQL的 - select 1
  • 安格尔 - select 1
  • 德比 - values 1
  • H2 - select 1
  • 火鸟 - select 1 from rdb$database

我写了一篇关于它在我的博客- 为各种数据库验证查询 。

预先存在类的一个例子,它根据JDBC驱动程序返回validationQuery。

或者没有任何人有更好的解决办法?



Answer 2:

对于MySQL与Connector / J驱动程序,有,只是发送一个ping到服务器,并返回一个空的结果集的轻量级验证查询。 验证查询可以(或者应该开始)完全以下字符串:

/* ping */

欲了解更多Infor公司指验证连接在MySQL驱动程序手册



Answer 3:

对于Informix,验证查询,从systables中选择1



文章来源: DBCP - validationQuery for different Databases