如何使用java检查mysql中的特定数据库是否已存在

2022-09-03 17:35:36

我是JDBC的新手,我想看看是否有办法检查MySQL中是否已经存在特定的数据库。

假设我想创建一个名为 students 的数据库,如果学生数据库已经在 MySQL 中创建,eclipse 中的错误消息将指出这个学生数据库已经存在。但是,我想做的是创建一个布尔方法来检查学生数据库是否已经存在。如果它存在,那么布尔方法将返回false,否则它的true,那么我可以创建学生数据库。如何在Java中执行这些操作?JDBC 中是否有任何方法可以执行此操作,或者我是否需要从头开始编写代码?

编辑 2

我遵循了mguymons的建议,这就是我想到的

public boolean checkDBExists(String dbName){

    try {
        Class.forName(JDBCDriver); //Register JDBC Driver
        
        System.out.println("Creating a connection...");
        conn = DriverManager.getConnection(DBURL, USER, PASS); //Open a connection
    
        ResultSet resultSet = conn.getMetaData().getCatalogs();
        
        while (resultSet.next()) {
        
          String databaseName = resultSet.getString(1);
            if(databaseName.equals(dbName)){
                return true;
            }
        }
        resultSet.close();

    }
    catch(Exception e){
        e.printStackTrace();
    }
    
    return false;
}

答案 1

您可以使用 DatabaseMetaData#getCatalogsJDBC 连接中获取该信息,下面是获取目录的示例,也称为数据库名称

// Connection connection = <your java.sql.Connection>
ResultSet resultSet = connection.getMetaData().getCatalogs();

//iterate each catalog in the ResultSet
while (resultSet.next()) {
  // Get the database name, which is at position 1
  String databaseName = resultSet.getString(1);
}
resultSet.close();

答案 2
show databases like 'students'

如果找回一行,则它存在。


推荐