Chapter 31. JDBC 接口

Table of Contents
31.1. 设置 JDBC 驱动
31.1.1. 获取驱动
31.1.2. 设置类路径
31.1.3. JDBC准备数据库服务器
31.2. 初始化驱动
31.2.1. 装入 JDBC
31.2.2. 装载驱动
31.2.3. 与数据库联接
31.2.4. 关闭联接
31.3. 发出查询和处理结果
31.3.1. 基于一个游标获取结果
31.3.2. 使用 StatementPreparedStatement 接口
31.3.3. 使用ResultSet(结果集)接口
31.4. 执行更新
31.5. 调用存储过程
31.5.1. 使用 CallableStatement 接口
31.5.2. 从个存储过程里获取 ResultSet
31.6. 创建和更改数据库对象
31.7. 存储二进制数据
31.8. PostgreSQLJDBC API的扩展
31.8.1. 访问这些扩展
31.8.2. 几何数据类型
31.8.3. 大对象
31.9. 在一个多线程或服务器小应用(serverlet)环境里使用驱动
31.10. 连接池和数据源
31.10.1. 概述
31.10.2. 应用服务器:ConnectionPoolDataSource
31.10.3. 应用:DataSource
31.10.4. 数据源和 JNDI
31.11. 深入阅读

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

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

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

31.1. 设置 JDBC 驱动

本节描述你在开始书写或者运行使用 JDBC 接口的程序之前需要采取的步骤。

31.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 规范的版本, 而如果你用 1.4 JDK 制作,那么你将制作一个支持 JDBC 3 规范的版本。

31.1.2. 设置类路径

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

比如,假设我有一个使用 JDBC 驱动访问数据库的应用, 该应用安装在 /usr/local/lib/myapp.jar。 PostgreSQL JDBC 驱动安装在/usr/local/pgsql/share/java/postgresql.jar。要运行应用, 我可以用∶

export CLASSPATH=/usr/local/lib/myapp.jar:/usr/local/pgsql/share/java/postgresql.jar:.
java MyApp

在应用里装载驱动的内容在 Section 31.2 里介绍。

31.1.3. 为 JDBC准备数据库服务器

因为 Java 只使用 TCP/IP 联接, 所以 PostgreSQL 服务器必须配置成接受 TCP/IP 联接,我们可以通过在 postgresql.conf 文件里设置 tcpip_socket = true 或者启动 postmaster 的时候带-i参数实现这个目的。

同样,在 pg_hba.conf 文件里的客户端认证设置也要配置好。 请参考 Chapter 19 获取细节。 JDBC 驱动支持 trustidentpasswordmd5crypt 认证方式。