如何使用";列出多个数据库及其表;“显示表格”;通过Java?

如何使用";列出多个数据库及其表;“显示表格”;通过Java?,java,mysql,Java,Mysql,我试图用Java列出MySQL数据库及其表。目前,我有两个数据库,分别是“数据库服务和MySQL数据库服务,MSSQL数据库服务,以及目录服务和Active目录,OpenLDAP表。我得到了数据库服务及其表的输出,但没有得到其他的输出 public class connectMySQL implements serverConnection{ Connection conn; Statement stmt; public void connect(String dbName){ Stri

我试图用Java列出MySQL数据库及其表。目前,我有两个数据库,分别是“数据库服务和MySQL数据库服务,MSSQL数据库服务,以及目录服务和Active目录,OpenLDAP表。我得到了数据库服务及其表的输出,但没有得到其他的输出

public class connectMySQL implements serverConnection{
Connection conn;
Statement stmt;
public void connect(String dbName){
    String url;
    try {
        if(dbName.equals("")){
            url = "jdbc:mysql://x:x/";
        }
        else{
            url = "jdbc:mysql://x:x”+ dbName;
        }
        String username = “x”;
        String password = "x";
        conn =  DriverManager.getConnection(url,username,password);
        stmt = conn.createStatement();
    }
    catch (SQLException ex)
    {
        System.out.println("An error occurred. Maybe user/password is invalid");
        ex.printStackTrace();
    }
}
}

}

我希望得到如下输出:

数据库服务:

  • MySQL_数据库_服务
  • MSSQL_数据库_服务
  • 目录服务:

  • 活动目录服务

  • OpenLDAP\u服务


  • 如果您有两个以上的数据库,那么只需使用loop for即可获得结果。

    您可以使用元信息数据库
    信息\u模式

    SELECT 
        TABLE_SCHEMA,
        TABLE_NAME 
    
    FROM information_schema.TABLES
    
    WHERE TABLE_SCHEMA IN ('Database_Services', 'Directory_Services')
    
    ORDER BY TABLE_SCHEMA
    

    您对多个查询使用相同的
    语句
    。您不能这样做。从:

    默认情况下,每个语句对象只能同时打开一个ResultSet对象。因此,如果一个ResultSet对象的读取与另一个ResultSet对象的读取交错,则每个ResultSet对象都必须由不同的语句对象生成。语句接口中的所有执行方法都会隐式关闭Station的当前ResultSet对象如果存在一个开放的ct


    这就是OP的基本功能。你有没有尝试过在没有Java的情况下执行这些语句?请扩展代码,使其可以运行。你在哪里声明
    rs
    stmt
    ?是的,我在我的MySQL服务器中声明了,它正在工作。我可以分别列出它们,但不能同时列出它们。我编辑了这篇文章如您所愿。请不要破坏您的帖子并删除代码。提交帖子后,您已将内容授权给Stack Overflow社区()。根据SE策略,任何破坏行为都将恢复。
    Connection conn1 = DriverManager.getConnection(url, username, password);
    Connection conn2 = DriverManager.getConnection(url, username, password);
    
    Statement statement1 = conn1.createStatement();
    Statement statement2 = conn2.createStatement();
    
    ResultSet resultSet1 = statement1.executeQuery("SHOW TABLES IN DB1");
    ResultSet resultSet2 = statement2.executeQuery("SHOW TABLES IN DB2");
    
    while (resultSet1.next()) {
       System.out.println("");
    }
    
    while (resultSet2.next()) {
       System.out.println("");
    }
    
    SELECT 
        TABLE_SCHEMA,
        TABLE_NAME 
    
    FROM information_schema.TABLES
    
    WHERE TABLE_SCHEMA IN ('Database_Services', 'Directory_Services')
    
    ORDER BY TABLE_SCHEMA