首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何连接到PostgreSQL服务器查询数据库名称列表

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

Stack Overflow用户
提问于 2014-05-07 15:45:36
回答 3查看 6.7K关注 0票数 11

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

但是我想连接到postgresql服务器,并在那里找到数据库列表。当我使用jdbc:postgresql://localhost:5432时,我得到了一个名为

代码语言:javascript
运行
复制
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432

是否有其他驱动程序或方法可以在不知道服务器中的数据库名称和查询数据库列表的情况下连接到服务器?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-07 16:37:24

好的。我自己想出来了。我可以使用此字符串使用jdbc驱动程序连接到服务器。

jdbc:postgresql://localhost:5432/?

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

代码语言:javascript
运行
复制
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();
        }
    }

引用:我使用这个dba stackexchange answer获取所有的数据库列表

票数 17
EN

Stack Overflow用户

发布于 2014-05-07 15:52:25

AFAIK,这超出了JDBC的能力。我建议你重新考虑解决更大问题的方法。环境变量或属性文件可能是解决方案。

票数 0
EN

Stack Overflow用户

发布于 2020-11-21 10:21:56

代码语言:javascript
运行
复制
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * Dev Parzival
 */
public class TestingDatabase {
    static String driver="org.postgresql.Driver";
    static String jdbc_url="jdbc:postgresql://localhost:5432/";
    static String username="username",password="password";
    static PrintStream out;
    static{
        out=System.out;
    }
    public static void main(String $[]){
        //SELECT datname FROM pg_database
        try{
            Class.forName(driver);
            Connection connection= DriverManager.getConnection(jdbc_url,username,password);
            Statement statement=connection.createStatement();
            ResultSet result=statement.executeQuery("SELECT datname FROM pg_database");
            while(result.next()){
                System.out.println(result.getString(1));
            }
            connection.close();
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
}

希望这能对某些人有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23522400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档