参考文献: Regina Obe Leo Hsu 著, 丁奇鹏 译《PostgreSQL即学即用》
Java 在操作系统上的安装我们就不作介绍了, 网上有很多很好的教程. 比如文章 How to install Java Development Kit (JDK) on openSUSE and SLES 介绍了如何在 openSUSE 和 SLES 上安装 Java 开发套件.
如果 Java 已安装, 可以使用
PS D:\work\cs\Database\postgres\JDBC> java -version java version "1.8.0_152" Java(TM) SE Runtime Environment (build 1.8.0_152-b16) Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
从网站 https://jdbc.postgresql.org/download/ 下载 PostgreSQL JDBC Driver.
这里我们下载关于 Java 8 的 JDBC 4.2 版本的 jar 文件. 将其拷贝到C:\Program Files\Java\jdk1.8.0_152\lib 目录.
检查环境变量
C:\Users\haife>echo %JAVA_HOME% C:\Program Files\Java\jdk1.8.0_152
将 "C:\Program Files\Java\jdk1.8.0_152\lib\postgresql-42.7.8.jar;" 或 "%JAVA_HOME%\lib\postgresql-42.7.8.jar" 添加到环境变量
下面的代码来自 www.codejava.net, 将其保存到文件 JdbcPostgresqlConnection.java. 由于有 package 指令, 故存放于 net/codejava/jdbc 目录下.
PS D:\work\cs\Database\postgres\JDBC> tree .
卷 计算机 的文件夹 PATH 列表
卷序列号为 004A005C 9C68:468A
D:\WORK\CS\DATABASE\POSTGRES\JDBC
└─net
└─codejava
└─jdbc
package net.codejava.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* This program demonstrates how to make database connection to PostgreSQL
* server using JDBC.
* @author www.codejava.net
*
*/
public class JdbcPostgresqlConnection {
public static void main(String[] args) {
// create three connections to three different databases on localhost
Connection conn1 = null;
Connection conn2 = null;
Connection conn3 = null;
try {
//Class clazz = Class.forName("org.postgresql.Driver");//不需要
//clazz.newInstance();
// Connect method #1
String dbURL1 = "jdbc:postgresql:postgresql_book?user=postgres&password=34klq*";
conn1 = DriverManager.getConnection(dbURL1);
if (conn1 != null) {
System.out.println("Connected to database #1");
}
// Connect method #2
String dbURL2 = "jdbc:postgresql://localhost/postgresql_book";
String user = "postgres";
String pass = "34klq*";
conn2 = DriverManager.getConnection(dbURL2, user, pass);
if (conn2 != null) {
System.out.println("Connected to database #2");
}
// Connect method #3
String dbURL3 = "jdbc:postgresql://localhost:5432/postgresql_book";
Properties parameters = new Properties();
parameters.put("user", "postgres");
parameters.put("password", "34klq*");
conn3 = DriverManager.getConnection(dbURL3, parameters);
if (conn3 != null) {
System.out.println("Connected to database #3");
}
}
//catch (SQLException | InstantiationException | IllegalAccessException ex) {
catch (SQLException ex){
ex.printStackTrace();
} finally {
try {
if (conn1 != null && !conn1.isClosed()) {
conn1.close();
}
if (conn2 != null && !conn2.isClosed()) {
conn2.close();
}
if (conn3 != null && !conn3.isClosed()) {
conn3.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
编译运行
PS D:\work\cs\Database\postgres\JDBC> javac -d . .\net\codejava\jdbc\JdbcPostgresqlConnection.java PS D:\work\cs\Database\postgres\JDBC> java net.codejava.jdbc.JdbcPostgresqlConnection Connected to database #1 Connected to database #2 Connected to database #3