如何连接到PostgreSQL服务器以查询数据库名称列表

lak*_*man 9 java sql postgresql connection

我可以使用jdbc:postgresql://host:port/databasejdbc驱动程序连接到postgresql服务器中的数据库.

但我想连接到postgresql服务器并在那里找到数据库列表.当我使用时jdbc:postgresql://localhost:5432,我得到一个叫做的例外

java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432
Run Code Online (Sandbox Code Playgroud)

是否有任何其他驱动程序或任何方法来获取服务器的连接,而不知道服务器中的数据库名称并在那里查询数据库列表?

lak*_*man 12

好.我已经把它想出来了.我可以使用此字符串通过jdbc驱动程序连接到服务器.

jdbc:postgresql://localhost:5432/?

并可以使用此代码段来获取数据库列表

private void listDownAllDatabases() {
        try {
            PreparedStatement ps = connection
                    .prepareStatement("SELECT datname FROM pg_database WHERE datistemplate = false;");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
            rs.close();
            ps.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

参考资料:我使用这个dba stackexchange答案来获取所有数据库列表