通过JDBC“ ping”数据库的最佳方法是什么?
问题内容:
我正在尝试确定通过JDBC ping数据库的最佳方法。“最好”是指快速且低开销。例如,我考虑过执行以下命令:
"SELECT 1 FROM DUAL"
但是我相信DUAL表是特定于Oracle的,并且我需要一些更通用的东西。
请注意,它Connection
具有一个isClosed()
方法,但是javadoc指出该方法不能用于测试连接的有效性。
问题答案:
是的,那只能是Oracle,但是在JDBC中没有通用的方法可以做到这一点。
大多数连接池实现都有一个配置参数,您可以在其中指定将用于ping的SQL,从而推动责任确定如何对用户执行此操作。
除非有人为此提供了一个小帮手工具,否则这似乎是最好的方法(当然,它排除了可能使用甚至更快的非基于SQL的方法(例如Oracle的内部ping函数)的可能性)