您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

Chapter 8. JDBC 接口

作者: 最初由 Peter T. Mount ( )执笔,他是 JDBC 驱动最初的作者.

JDBC 是 Java 1.1 及以后的核心 API . 它为 SQL 兼容的数据库提供了一个标准的接口集合.

PostgreSQL 提供了 类型 4 JDBC 驱动. 类型 4 表明该驱动是用纯 Java 书写的,并且与数据库之间使用数据库自己的网 络协议通讯.因此,驱动是平台无关的.一旦编译,该驱动可以用于任意平台.

本章并不想作为完整的 JDBC 编程的指导,但应该能帮你走出第一步. 更多信息请参考标准 JDBC API 文档. 同样,读一下包含在源代码里的例子.其中的基本例子在这里使用.

8.1. 设置 JDBC 驱动

8.1.1. 获取驱动

预编译好的驱动通常可以在 PostgreSQL JDBC 站点 找到.

另外你可以直接从源程序中制作驱动.尽管你只有在自己改动了驱动的代码 情况下才需要这么做.

PostgreSQL 版本 7.1 开始, JDBC 驱动使用 Ant 制作, Ant 是一种用于制作基于 Java 的包的特殊工具. 你应该在开始制作之前先从 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 选项,或者你使用了某些把它放在不同位置的 二进制版本,那么你的驱动可能在不同的目录里.

比如,我有一个使用 JDBC 驱动的应用,该应用访问一个存有天文对象的大数据库. 我的应用已经写好了,并且 JDBC 驱动 安装在 /usr/local/lib 目录,而 Java JDK 安装在 /usr/local/jdk1.3.1 .要运行应用, 我可以用∶

export CLASSPATH=/usr/local/lib/finder.jar

(1)

:/usr/local/pgsql/share/java/postgresql.jar:.
java uk.org.retep.finder.Main

(1)
finder.jar 里面包含 Finder 应用.

在应用里装载驱动的内容在 Section 8.2 里介绍.

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 认证方式.