首页 > 解决方案 > 连接时Postgresql java无限循环

问题描述

我有以下代码通过 java 连接 postgresql 数据库,但是当我运行此代码时,它总是在 getConnection 行处以无限循环结束。我该如何处理?

public static void main(String[] args) {
    try {
        Class.forName("org.postgresql.Driver");
        Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:533/Airway","postgres", "abc");
        PreparedStatement stmt = conn.prepareStatement("select * from user");
        ResultSet res = stmt.executeQuery();
        System.out.println(res.getString(1));
    } catch(Exception e) {
        System.out.print(e.getMessage().toString());
        System.exit(0);
    }
    System.out.println("Opened database successfully");
}

标签: javasqlpostgresql

解决方案


如果您无法创建,Connection则很可能是网络问题或 PostgreSQL 实例已关闭(或正在侦听另一个端口)。首先,您要确保端口 533 已打开并且 PostgreSQL 正在侦听。

您还可以按照文档第 3 章初始化驱动程序中的说明在 JDBC URL 中指定连接超时。这需要添加connectTimeout参数(以秒为单位的值)

jdbc:postgresql://localhost:533/Airway?connectTimeout=2 

推荐阅读