windows上通过java连接postgresql,代码如下,报错。
package com.xxx.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBUtils {
private static Connection conn = null;
private static final String url = "jdbc:postgresql://localhost:5432/testdb";
private static final String user = "postgres";
private static final String password = "";
static{
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(url, user, password);
System.out.println("get connection:"+conn+" from database successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
运行,报出如题所示错误。
警告: SQLException occurred while connecting to localhost:5432 org.postgresql.util.PSQLException: FATAL: role "postgres" does not exist
通过排查,发现数据库中没有postgres这个用户。
解决办法有两个:
1、直接在代码中使用用户Administrator,可以解决连接的问题。
2、如果不想用这个Administrator,可以通过创建postgres超级用户也可以解决。
运行正常,打印信息:
get connection:org.postgresql.jdbc.PgConnection@67424e82 from database successfully.