当前位置: 首页 > 面试题库 >

通过JDBC“ ping”数据库的最佳方法是什么?

艾跃
2023-03-14
问题内容

我正在尝试确定通过JDBC ping数据库的最佳方法。“最好”是指快速且低开销。例如,我考虑过执行以下命令:

"SELECT 1 FROM DUAL"

但是我相信DUAL表是特定于Oracle的,并且我需要一些更通用的东西。

请注意,它Connection具有一个isClosed()方法,但是javadoc指出该方法不能用于测试连接的有效性。


问题答案:

是的,那只能是Oracle,但是在JDBC中没有通用的方法可以做到这一点。

大多数连接池实现都有一个配置参数,您可以在其中指定将用于ping的SQL,从而推动责任确定如何对用户执行此操作。

除非有人为此提供了一个小帮手工具,否则这似乎是最好的方法(当然,它排除了可能使用甚至更快的非基于SQL的方法(例如Oracle的内部ping函数)的可能性)



 类似资料:
  • 我正在尝试为一个Saas应用程序建模,在这个应用程序中,我将让不同的公司使用这些服务。我有点困惑于为这种类型的服务建模我的猫鼬数据库的最佳方式。 所以这个模型有点像 为这样的应用程序建模的最佳方式是什么? 我是否应该为用户、项目等创建不同的模型,并将公司唯一ID附加到该公司内的所有用户或项目。也可以在公司模型中引用这些用户或项目。差不多 或者 只需在公司模式中引用用户和项目模式,而不需要单独的模型

  • 问题内容: 在阅读了有关数据库架构迁移和版本的许多问题之后,我提出了一种在更新过程中安全地更新数据库架构的方案。基本思想是,在更新期间,我们将数据库导出到文件中,删除并重新创建所有表,然后重新导入所有内容。那里没有什么花哨或冒险的地方。 问题在于该系统在某种程度上是“病毒的”,这意味着仅 添加 列或表是安全的,因为删除列或表会在重新导入数据时引起问题。通常,忽略这些列就可以了,但问题是实际上已重构

  • 问题内容: 我想过滤java.util.Collection基于谓词的。 问题答案: Java 8(2014)在一行代码中使用流和lambda解决了此问题: 这是一个教程。 使用修改收集到位。(注意:在这种情况下,谓词将删除满足该谓词的对象): 允许过滤集合而无需编写循环或内部类: 你能想象一些更具可读性的东西吗?

  • 问题内容: 我想在数据库中存储大量声音文件,但是我不知道这是一个好习惯。我想知道这样做的利弊。 我还考虑了与这些文件建立“链接”的可能性,但这也许会带来比解决方案更多的问题。对此方向的任何经验都将受到欢迎:) 注意:数据库将是MySQL。 问题答案: 我所知道的每个存储大量大文件的系统都将它们存储在数据库的外部。您将文件的所有可查询数据(标题,艺术家,长度等)以及文件的部分路径存储在数据库中。当需

  • 问题内容: 说我有一个查询表格 我想参数化in。 有没有一种简单的方法可以在Java中使用JDBC进行操作,而该方法可以在多个数据库上运行而无需修改SQL本身? 我发现的最接近的问题与C#有关,我想知道Java / JDBC是否有所不同。 问题答案: 在JDBC中,确实没有直接的方法可以做到这一点。某些 JDBC驱动程序似乎支持该IN子句。我只是不确定那是哪个。 你可以仅使用带有和的辅助方法,并为

  • 问题内容: 我正在尝试找到使用jQuery通过Ajax调用在页面上显示结果的最佳方法,您认为最佳方法是将其作为JSON或纯文本传递吗?我以前使用过ajax调用,但是不确定哪个是首选的,对于JSON版本,从PHP页面生成的JSON文件中读取以显示我的结果的最佳方法是什么。 我知道我会包括一个贯穿它以显示所有内容。 问题答案: 像这样: 将采用由产品键返回的PHP数组制成的json对象。例如: 要重新