作者: 由 Peter T. Mount (<[email protected]>)执笔,他是 JDBC 驱动的作者.
JDBC 是 Java 1.1 及以后的核心 API. 它为 SQL 兼容的数据库提供了一个标准的接口集合.
Postgres 提供了 类型 4 JDBC 驱动. 类型 4 表明该驱动是用纯 Java 书写的,并且与数据库之间使用数据库自己的网 络协议通讯.因此,驱动是平台无关的.一旦编译,该驱动可以用于任意平台.
本章并不想作为完整的 JDBC 编程的指导,但应该能帮你走出第一步. 更多信息请参考标准 JDBC API 文档. 同样,读一下包含在源代码里的例子.其中的基本例子在这里使用.
预编译好的驱动通常可以在 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 ...这样,在你执行 gmake 和 gmake install 命令的时候将会把驱动和 PostgreSQL 包的其它部分一起制作. 如果你只想制作驱动,而不想制作 PostgreSQL 其它部分,进入 src/interfaces/jdbc 然后在那里执行相应的 make 命令.请参考 PostgreSQL 安装指导获取更多有关 配置和制作过程的信息.
注意: 请不要使用直接调用 javac 的方法制作, 因为驱动使用一些动态装载的技巧一提高性能,而 javac 是无法处理这些事情的. 也不要试图直接运行 ant,因为一些配置 信息是通过制作文件(makefile)传递的.如果不提供这些配置 参数而直接运行 ant,生成的将是破损 的驱动.
要使用驱动,它的 jar 归档 postgresql.jar 必须包含在类路径里,你要么是把路径放到 CLASSPATH 环境变量里,要么是使用 java 命令行上的标记. 缺省时,jar 归档安装在 /usr/local/pgsql/share/java 目录里. 如果你在运行 configure 的时候使用了 --prefix 选项,那么你的驱动可能在不同的目录里.
比如,我有一个使用 JDBC 驱动的应用,该应用访问一个存有天文对象的大数据库. 我的应用已经写好了,并且 JDBC 驱动 安装在 /usr/local/lib 目录,而 Java JDK 安装在 /usr/local/jdk1.1.6.要运行应用, 我可以用∶
export CLASSPATH=/usr/local/lib/finder.jar(1):/usr/local/pgsql/share/java/postgresql.jar:. java uk.org.retep.finder.Main
在应用里装载驱动的内容在 Section 8.2 里介绍.
因为 Java 只能使用 TCP/IP 联接, 所以 Postgres服务器 必须配置成接受 TCP/IP 联接,也就是启动 postmaster 的时候 必须带-i参数.
同样,在 pg_hba.conf 文件里的 客户端认证设置也要配置好. 请参考管理员手册获取细节. JDBC 驱动支持 trust,ident,password 和 crypt 认证方式.