java - 连接时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");
}
解决方案
如果您无法创建,Connection
则很可能是网络问题或 PostgreSQL 实例已关闭(或正在侦听另一个端口)。首先,您要确保端口 533 已打开并且 PostgreSQL 正在侦听。
您还可以按照文档第 3 章初始化驱动程序中的说明在 JDBC URL 中指定连接超时。这需要添加connectTimeout
参数(以秒为单位的值)
jdbc:postgresql://localhost:533/Airway?connectTimeout=2
推荐阅读
- python - 将日志图限制设置为下一个最低/最高十年
- java - 如何删除整个fragmentTransaction
- java - AEM - We Retail 网站上的自定义实施
- android - 为什么我的 pubspec.yaml 文件不工作并且包含一个类 R iam 不写这个类?
- ios - AVAssetExportSession 不在设备上工作,但在模拟器上工作(AVFoundationErrorDomain 代码 = -11800,未知错误代码 -12780)
- json - 用 Delphi 识别 JSON 级别
- excel - 模块不会在 Excel VBA 编辑器中运行
- c# - 使用按钮初始化 ObjectListView
- uml - 如何参数化 UML 序列图并将其应用于多个对象实例?
- c# - 检查 TimeSpan 是否属于夏令时转换