【问题标题】:Checking if table exist in database检查表是否存在于数据库中
【发布时间】:2017-11-13 03:42:10
【问题描述】:

我有一个JDBC 代码,它从数据库中检索数据并在运行时获取查询。在运行时,它将进入数据库并尝试获取数据并将其写入文件。如果表不存在,则会给出未找到表的异常。如何处理?

这里我不能用,

ResultSet rs = md.getTable() 

我只需要在运行时检查。

SQL 示例:select * from table; 此处为 Preparedstatement 和 ResultSet,

在运行时,当上面的循环将迭代时,此表变量将获取表的名称。如果表不存在,那么它会在控制台上给出此异常。

如何顺利处理?

【问题讨论】:

  • 只显示更多代码。什么是md?数据库元数据?没有getTable 方法,只有getTables。试试md.getTables(null, null, "<your_table_name>", null)
  • 我只是说 getTables 方法我不能使用它
  • 如果您不能使用DatabaseMetaData#getTables(),那么您唯一的选择是捕获尝试访问表时将发生的异常。为什么你不能使用getTables()?请edit您的帖子并包含有关您的问题的所有相关信息。
  • 如前所述编辑问题

标签: java jsp jdbc


【解决方案1】:

如果您不希望出现这种异常,首先您应该检查数据库中有哪些表。如果该表不存在,您可以创建并避免该异常。

DatabaseMetaData dbm = con.getMetaData();
ResultSet tables = dbm.getTables(null, null, "your_table_name", null);
if (tables.next()) {
  // Table exists
}
else {
  // Table does not exist
}

如果该表不存在,您可能需要创建一个新表以避免以后出现此类异常。

【讨论】:

    【解决方案2】:

    使用hsqlDB,如果您只是想在创建新的之前确定一下,您可以使用CREATE TABLE IF NOT EXISTS newTable (column details...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 2021-05-24
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多