JDBC已成功连接到数据库,但是无法获取数据表的名称?

JDBC成功连接到数据库,我在逐步调式的时候,也看到生成的连接了。


应老师的要求,要获取一个数据库中所有的表名称,下面是我写的一个函数,提示没有错误,但最后打印结果,为空。


图片的上一部分是另一个功能,足以证明以成功连接到数据库


求告知,可能出错的问题,在哪里?

下面是代码

public static List<String> getAllTableNames( String databasename) {
      List<String> tableNames = new ArrayList<String>();
      Connection conn1 = null;        

       try {
           conn1 = getConnection();
        DatabaseMetaData dbmd1 = conn1.getMetaData();
        // 表名列表
        ResultSet rest = dbmd1.getTables(databasename, null, null, new String[] { "TABLE" });

        // 输出 table_name
        while (rest.next()) {
          tableNames.add(rest.getString("TABLE_NAME"));
        }
       } catch (SQLException e) {
        e.printStackTrace();
       }

      return tableNames;
     }

图片说明

1个回答

public static Connection getCon() {
        String username = "root";
        String password = "mysql";
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/monitor_plat?autoReconnect=true&useSSL=false";
        Connection conn = null;
        try {
            Class.forName(driver);
            conn = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    public static List<String> getAllTableNames(String dbName) {
        List<String> tableNames = new ArrayList<>();
        Connection conn;
        try {
            conn = getCon();
            DatabaseMetaData dbmd = conn.getMetaData();
            ResultSet rest = dbmd.getTables(dbName, null, null, new String[]{"TABLE"});
            while (rest.next()) {
                tableNames.add(rest.getString("TABLE_NAME"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return tableNames;
    }

    public static void main(String[] args) {
        System.out.println(getAllTableNames("monitor_plat"));
    }

上面代码可以运行出tables,只能说明你传递的dabasename中没有表

hellowwor
hey ᕕ( ᐛ )ᕗ 嗯,多谢啦,确实,我传参数的时候,传错了,那个数据库里根本没有表。尴尬
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问