九月 6, 2024
摘要:在本教程中,您将学习如何从 Java 程序连接到 PostgreSQL 数据库服务器。
目录
创建新数据库
首先,在 Windows 上打开命令提示符,或在类 Unix 系统上打开终端,然后使用psql
客户端工具,连接到本地 PostgreSQL 数据库服务器:
psql -U postgres
第二步,创建一个名为sales
的新数据库:
CREATE DATABASE sales;
第三步,退出psql
:
exit
设置 JDK
要开发 Java 程序,您需要在计算机上安装 JDK。要设置 JDK,首先,您访问 Oracle 网站下载最新的 JDK。然后,将其安装在计算机上。
设置很简单,您只需要接受安装程序提供的默认参数即可设置完成。
安装 IntelliJ IDE
我们将使用 IntelliJ IDE。
下载 PostgreSQL JDBC 驱动
要从 Java 程序连接到 PostgreSQL 服务器,您需要 PostgreSQL JDBC 驱动。
您可以在 jdbc.postgresql.org 下载页面上下载最新版本的驱动。下载的文件是一个 jar 文件,例如postgresql-42.7.1.jar
。
创建新项目
首先,启动 IntelliJ IDE。
接下来,创建一个名为sales
的新项目。
然后,右键单击项目名称,并选择 Open Module Settings(打开模块设置)。
之后,选择 Project Settings(项目设置)下的 Libraries(库),并单击 New Project Library(新建项目库)。
最后,选择 PostgreSQL 数据库驱动文件,例如postgresql-42.7.1.jar
。
创建数据库配置文件
首先,在项目的src
目录中,创建一个名为db.properties
文件的新文件。
其次,将连接参数添加到db.properties
文件中:
db.url=jdbc:postgresql://localhost:5432/sales
db.username=Yourusername
db.password=YourPassword
config.properties
中包括了三个连接参数:
db.url
:PostgreSQL 数据库服务器的 URL。在此示例中,我们连接到本地 PostgreSQL 服务器上的sales
数据库,服务器的端口为 5432(默认端口)。db.user
:连接到数据库的用户帐户。db.password
:用户的密码。
请注意,您需要将YourUsername
和YourPassword
替换为实际的值。
定义 DatabaseConfig 类
首先,在项目的src
目录中,创建一个名为DatabaseConfig.java
的新文件。
其次,在DatabaseConfig.java
文件中,定义DatabaseConfig
类:
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class DatabaseConfig {
private static final Properties properties = new Properties();
static {
try (InputStream input = DatabaseConfig.class.getClassLoader().getResourceAsStream("db.properties")) {
if (input == null) {
System.out.println("Sorry, unable to find db.properties");
System.exit(1);
}
// Load the properties file
properties.load(input);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getDbUrl() {
return properties.getProperty("db.url");
}
public static String getDbUsername() {
return properties.getProperty("db.username");
}
public static String getDbPassword() {
return properties.getProperty("db.password");
}
}
该DatabaseConfig
类负责从db.properties
文件加载数据库配置。
该DatabaseConfig
有三个静态方法,来公开数据库配置:
getDbUrl()
– 返回数据库 URL。getDbUsername()
– 返回用户名。getDbPassword()
– 返回密码。
创建 DB 类
首先,在项目的src
目录中,创建一个名为DB.java
文件的新文件。
其次,使用下面代码,定义DB
类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DB {
public static Connection connect() throws SQLException {
try {
// Get database credentials from DatabaseConfig class
var jdbcUrl = DatabaseConfig.getDbUrl();
var user = DatabaseConfig.getDbUsername();
var password = DatabaseConfig.getDbPassword();
// Open a connection
return DriverManager.getConnection(jdbcUrl, user, password);
} catch (SQLException e) {
System.err.println(e.getMessage());
return null;
}
}
}
该DB
类有一个静态方法connect()
,该方法连接到本地 PostgreSQL 服务器上的 sales 数据库。
connect()
方法利用DatabaseConfig
类加载连接参数,并使用DriverManager
类的getConnection()
方法建立与数据库的连接。
如果connect()
方法成功建立了与 PostgreSQL 的连接,则返回一个Connection
对象,否则返回 null。
如果在连接过程中发生任何SQLException
异常,该connect()
方法将显示异常的详细信息。
创建 Java 程序
首先,在项目的 src 目录中,创建Main.java
文件。
其次,使用下面代码,在Main.java
文件中定义Main
类:
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try (var connection = DB.connect()) {
System.out.println("Connected to the PostgreSQL database.");
} catch (SQLException e) {
System.err.println(e.getMessage());
}
}
}
Main
类的main()
函数,通过调用connect()
方法,使用DB
类连接到本地 PostgreSQL 服务器上的sales
数据库。
如果成功建立连接,则显示一条消息,如果发生SQLException
异常,则显示错误。
try-with-resources 语句确保即使发生异常也会自动关闭Connection
。
如果您运行该程序并看到以下输出,则表示该程序已成功连接到 PostgreSQL 服务器:
Connected to the PostgreSQL database.
总结
使用DriverManager.getConnection()
方法,来建立与 PostgreSQL 服务器上的数据库的连接。