PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,会报一些如下的异常:
org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host
要解决这个问题,只需要在PostgreSQL数据库的安装目录下找到/data/pg_hba.conf,找到“# IPv4 local connections:”
在其下加上请求连接的机器IP
host all all 127.0.0.1/32 md5
32是子网掩码的网段;md5是密码验证方法,可以改(见文件pg_hba.conf上的说明)...
java连接数据库代码
package org.zj.dbconn;
import java.sql.*;
public class DBConnPostgres {
public static final String DBDRIVER="org.postgresql.Driver";
public static final String DBURL="jdbc:postgresql://localhost:5432/user";
public static final String DBUSER="postgres";
public static final String DBPASS="zhangjin";
public static void main(String []args){
Connection con=null;
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql="select * from t_user";
PreparedStatement ps= con.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while(rs.next()){
System.out.println(rs.getInt(1));
}
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}