|
Chapter 8. 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 规范的版本.
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
在应用里装载驱动的内容在 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 认证方式. |