第 8 章 JDBC 接口
目录
作者
最初由 JDBC 驱动最初的作者
Peter T. Mount(<peter@retep.org.uk>)编写。
JDBC 是 Java 1.1 及更高版本的核心 API。它为兼容 SQL 的数据库提供了一组标准接口。
PostgreSQL 提供一个 4 类(type 4)JDBC 驱动。4 类(type 4)表示该驱动用纯 Java 编写,并使用数据库系统自己的网络协议通信。因此,该驱动是平台无关的;一旦编译完成,就可以在任何系统上使用。
本章并不是一份完整的 JDBC 编程指南,但应该能帮助你入门。更多信息请参阅标准的 JDBC API 文档。另外,也可以看看源码中附带的例子。这里使用的是其中的基本示例。
8.1. 设置 JDBC 驱动 #
8.1.1. 获取驱动 #
可以从 PostgreSQL JDBC 网站下载预编译版本的驱动。
你也可以从源码构建驱动。不过只有在你修改源代码时才应该需要这么做。
从 PostgreSQL 7.1 版开始,JDBC 驱动使用
Ant 构建,这是一种专门用于构建基于 Java 的包的工具。在继续之前,你应该从Ant
网站下载
Ant 并安装。预编译的
Ant 发行版通常会读取当前用户主目录中的 .antrc 文件进行配置。例如,要使用与默认值不同的 JDK,可以这样:
JAVA_HOME=/usr/local/sun-jdk1.3 JAVACMD=$JAVA_HOME/bin/java
要构建驱动,请在你的 configure 命令行中加上
--with-java 选项,例如:
$./configure --prefix=xxx--with-java ...
这样,当你执行 make/gmake 和
make/gmake install 命令时,驱动会与
PostgreSQL 包的其余部分一起构建和安装。如果你只想构建驱动而不构建 PostgreSQL
的其余部分,可以进入目录 src/interfaces/jdbc 并在那里执行相应的 make/gmake 命令。关于配置和构建过程的更多信息,请参阅 PostgreSQL 安装说明。
从源码构建驱动时,创建的 jar 文件将名为
postgresql.jar。构建会在
src/interfaces/jdbc/jars
目录中生成该文件。构建出的驱动将针对你正在使用的
Java 版本构建。如果你用 1.1 JDK 构建,会得到一个支持
jdbc1 规范的版本;如果用 Java2 JDK(即 JDK1.2 或
JDK1.3)构建,会得到一个支持 jdbc2 规范的版本。
注意
不要试图通过直接调用 javac 来构建驱动,因为驱动出于性能原因使用了一些动态加载技术,而
javac 无法应对。也不要试图直接运行
ant,因为有些配置信息是通过
makefile 传递的。在不提供这些参数的情况下直接运行
ant 会得到一个有问题的驱动。
8.1.2. 设置类路径 #
要使用该驱动,需要把 jar 归档(如果你是从源码构建的,它名为
postgresql.jar,否则它可能名为
jdbc7.2-1.1.jar 或
jdbc7.2-1.2.jar,分别对应 jdbc1 和 jdbc2 版本)包含在类路径中,可以把它放入
CLASSPATH 环境变量,或者在
java 命令行上使用相应的标志。默认情况下,该 jar 归档安装在 /usr/local/pgsql/share/java 目录中。如果你运行
configure 时使用了
--prefix 选项,或者你使用的二进制发行版把它放在了别的位置,那么它可能在不同的目录中。
8.1.3. 为 JDBC 准备数据库 #
由于 Java 只使用 TCP/IP 连接,必须把
PostgreSQL 服务器配置为接受 TCP/IP 连接。这可以通过在
postgresql.conf 文件中设置
tcpip_socket = true,或者在启动
postmaster 时提供
-i 选项标志来完成。
另外,可能还需要配置
pg_hba.conf 文件中的客户端认证设置。详情请参阅管理员指南。JDBC 驱动支持 trust、ident、password、md5 和 crypt 认证方法。