Chapter 5. JDBC 接口

Table of Contents
5.1. 设置 JDBC 驱动
5.1.1. 获取驱动
5.1.2. 设置类路径
5.1.3. JDBC准备数据库
5.2. 使用驱动
5.2.1. 装入 JDBC
5.2.2. 装载驱动
5.2.3. 与数据库联接
5.2.4. 关闭联接
5.3. 发出查询和处理结果
5.3.1. 使用 StatementPreparedStatement 接口
5.3.2. 使用ResultSet(结果集)接口
5.4. 执行更新
5.5. 创建和更改数据库对象
5.6. 存储二进制数据
5.7. PostgreSQLJDBC API的扩展
5.7.1. 访问这些扩展
5.7.2. 几何数据类型
5.7.3. 大对象
5.8. 在一个多 Threaded (线程) 或 Servlet (服务器小应用)环境里使用驱动
5.9. 连接池和 DataSources
5.9.1. JDBC,JDK 版本支持
5.9.2. JDBC 连接池 API
5.9.3. 应用服务器:ConnectionPoolDataSource
5.9.4. 应用:DataSource
5.9.5. DataSources 和 JNDI
5.9.6. 特定的应用服务器配置
5.10. 深入阅读

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

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

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

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

5.1. 设置 JDBC 驱动

5.1.1. 获取驱动

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

另外你可以直接从源程序中制作驱动.尽管你只有在自己改动了驱动的代码 情况下才需要这么做。 相关的细节请参考PostgreSQL安装指导。在安装完成后,驱动应该在 PREFIX/share/java/postgresql.jar。 生成的驱动应该是为你运行的 Java 版本制作的。如果你用 1.1 JDK 制作, 那么你制作了一愕支持 JDBC 1 规范的驱动,如果你用 Java 2 JDK(比如, JDK 1.2 或者 JDK 1.3),你将制作一个支持 JDBC 2 规范的版本。

5.1.2. 设置类路径

要使用驱动,它的 JAR 归档 (如果你从源程序制作,那么名字叫 postgresql.jar,否则它很可能叫 jdbc7.2-1.1.jarjdbc7.2-1.2.jar -- 分别用于 jdbc1 和 jdbc2) 必须包含在类路径里,你要么是把路径放到 CLASSPATH 环境变量里,要么是使用 java 命令行上的标记.

比如,我有一个使用 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 5.2 里介绍.

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