↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.4 / 7.3 / 7.2 / 7.1
历史版本PostgreSQL 7.1 已于 2006 年 4 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

8.2. 使用驱动 #

8.2.1. 导入 JDBC #

任何使用 JDBC 的源文件都需要导入 java.sql 包,使用:

import java.sql.*;

重要

不要导入 org.postgresql 包。如果你 这样做,你的源代码将无法编译,因为 javac 会产生混淆。

8.2.2. 载入驱动 #

在连接数据库之前,你需要载入 驱动。有两种可用的方法,哪一种最好取决于你的 代码。

第一种方法中,你的代码使用 Class.forName() 方法隐式地载入驱动。 对于 Postgres,你可以使用:

Class.forName("org.postgresql.Driver");

这会载入驱动,并且在载入时,驱动会自动向 JDBC 注册自身。

注意

如果驱动不可用,forName() 方法可能抛出 ClassNotFoundException。

这是最常用的方法,但它把你的代码限制为只使用 Postgres。如果你的代码将来 可能访问其他数据库系统,并且你不使用任何 Postgres 特有的扩展,那么 建议使用第二种方法。

第二种方法在 JVM 启动时使用 -D 参数把驱动作为参数传递给它。例如:

java -Djdbc.drivers=org.postgresql.Driver example.ImageViewer

在这个例子中,JVM 会尝试把载入驱动 作为其初始化的一部分。完成后,就会启动 ImageViewer。

现在,这种方法是更好的一种,因为它允许你的 代码在不重新编译的情况下与其他数据库包一起 使用。唯一还需要改变的是连接 URL,这是接下来要介绍的内容。

最后一点:当你的代码随后尝试打开 Connection 时,如果抛出了 No driver available SQLException, 那么这可能是驱动不在类路径中,或者参数中的值不正确 造成的。

8.2.3. 连接到数据库 #

在 JDBC 中,数据库由一个 URL(统一资源定位符)表示。对于 Postgres,它采用下列 形式之一:

  • jdbc:postgresql:database
    
  • jdbc:postgresql://host/database
    
  • jdbc:postgresql://host:port/database
    

其中:

host

服务器的主机名。默认为 localhost。

port

服务器监听的端口号。默认为 Postgres 的标准端口号(5432)。

database

数据库名。

要建立连接,你需要从 JDBC 获得一个 Connection 实例。为此, 你可以使用 DriverManager.getConnection() 方法:

Connection db = DriverManager.getConnection(url, username, password);

8.2.4. 关闭连接 #

要关闭数据库连接,只需对 Connection 调用 close() 方法:

db.close();

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。