【发布时间】:2011-06-26 02:27:17
【问题描述】:
是否有一个库可以为 jdbc 驱动程序类确定要使用的适当验证查询?
例如 如果 jdbc 驱动程序是 com.mysql.jdbc.Driver 或 com.mysql.jdbc.jdbc2.optional.MysqlXADataSource 库将知道验证查询是“SELECT 1”
c3po http://www.mchange.com/projects/c3p0/index.html#preferredTestQuery
dbcp http://commons.apache.org/dbcp/configuration.html “验证查询”
【问题讨论】:
-
“验证查询”是什么意思?你的意思是检查连接是否存在?
-
大多数连接池要求最终用户设置验证查询以用于测试连接。 sql 测试查询不可移植。 # MySQL/PostgreSQL/MS SQL 使用:SELECT 1 # Oracle 使用:SELECT 1 from dual # DB2 使用:SELECT 1 FROM sysibm.sysdummy1 最终用户担心这些事情的原因是什么?为什么每个程序员都应该做同样的事情?因此图书馆的建议
-
c3po 有一个不错的概念——自动测试表。这个想法可以扩展,因为场景可能不允许 jdbc 用户创建表。因此,当我们使用 liquibase 时,每个模式都有 databasechangelog。然后我们可以使用 SELECT * from databasechangelog。
-
这个答案也可以帮助你:stackoverflow.com/questions/10684244/… 这是一个简单的类,它根据 jdbc 驱动程序类确定验证查询。 Blog - validationQuery for various Databases
标签: java validation jdbc