java - 尝试使用 JDBC 测试 MySQL 数据库中是否存在特定表时出错

标签 java mysql jdbc resultset database-metadata

我想通过使用 JDBC 的 Java 程序检查名为 basestation 的表是否存在于 MySQL 表中。我的代码是:

conn = DriverManager.getConnection(url, username, password);

DatabaseMetaData dbm = conn.getMetaData();

tables = dbm.getTables(null, null, "basestations", null);

if (tables.next())
{   
     //Table exists in database
     //...
}
else
{
     //Table does not exist
     //...
}

但是虽然表 basestations 存在于我的数据库中,但我的代码似乎从未进入第一个子句并且总是决定该表不存在,自然导致 表已经存在于数据库中 尝试从头开始创建表时出现 SQL 错误。

最佳答案

下面不是最好的方法。但是您可以执行以下操作:

使用JDBC发送如下语句:

select count(*) from information_schema.tables where information_schema.table_schema='your_schema' and information_schema.table_name='basestations';

解析jdbc结果集。

这应该返回 1 或 0。如果结果计数为 1,则表存在,否则不存在。

关于java - 尝试使用 JDBC 测试 MySQL 数据库中是否存在特定表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898059/

相关文章:

java - JFrame 的无响应 KeyListener

java - 日志在哪里声明?

php - 无法输出个人资料页面的缩略图

java - Glassfish 中的 JDBC 连接池 ping 错误

java - EJB2 中的时间延迟

java - 如何在 Android 中隐藏特定列

mysql - 思维斯芬克斯 : Run SQL String Through Association

php - Laravel DB 首先选择 : The Response content must be a string

jdbc - clojure.java.jdbc/延迟查询大结果集

java - 打开 JDBC 连接后无法移动 MS Access 文件