2.1 历史

JDBC API 是一项成熟的技术,最早于 1997 年 1 月发布。在初始版本中,JDBC API 专注于提供对 SQL 数据库的基本调用级接口。JDBC 2.1 规范和 2.0 可选包规范随后扩大了 API 的范围,以支持更高级的应用程序以及应用服务器代表其应用程序管理 JDBC API 使用所需的功能。

JDBC 3.0 规范的目标,是通过补齐若干较小但重要的能力来完善这套 API。到了 JDBC 4.2,我们的目标主要有两个:其一,改善所有在 Java 平台上使用 SQL 的开发者的开发体验;其二,提供一组面向企业场景的能力,使 JDBC 能够更好地被各类工具和上层 API 用来管理 JDBC 资源。

2.2 目标概述

以下列表概述了 JDBC API 总体以及 JDBC 4.2 API 的设计目标与理念:

1. 适应 Java EEJava SE 平台

JDBC APIJava 平台的一个组成部分技术。JDBC 4.2 API 应与 Java 企业版和 Java 标准版平台的整体方向保持一致。此外,Java SE 平台的最新发展暴露了一系列新功能和语言改进,这些在本规范中被广泛使用。

2. 与 SQL:2003 保持一致

JDBC API 为用 Java 编程语言编写的应用程序提供对标准 SQL 的编程访问。JDBC 3.0 力求确保对 SQL99 功能子集的支持,这些功能预计会被业界广泛支持。同样,对于 JDBC 4.2,对 SQL:2003 的支持集中在该规范的主要组件上,我们预计这些组件将在可预见的未来得到支持。

3. 提供供应商中立的通用功能访问

JDBC API 力求提供对不同供应商实现中常见支持的功能的高带宽访问。目标是提供与本地应用程序可达到的功能访问程度相当的功能访问。然而,API 必须足够通用和灵活,以允许广泛的实现范围。

4. 保持对 SQL 的关注

JDBC API 的重点一直是从 Java 编程语言访问关系数据。这一目标在 JDBC 3.0 API 中已经明确提出,并且仍然是本规范的核心原则。围绕简化开发所做的 API 与工具改进,依然服务于基于 SQL 的软件开发需求。当然,这并不排斥与 XMLCORBA 以及非关系型数据等其他技术的交互。

5. 为工具和高级 API 提供基础

JDBC API 提供了一套标准 API,用于访问各种底层数据源或遗留系统。通过 JDBC API 这一抽象层,具体实现之间的差异被屏蔽了,这使它成为构建可移植工具和应用程序的理想基础。由于它本质上是从 Java 编程语言到 SQL 的调用级接口,因此也很适合作为更高层能力的基础,例如企业 JavaBeansEJB)中的容器管理持久化、SQLJ 以及 JDBC RowSet 实现。

6. 保持简单

JDBC API 旨在成为一个简单易用、直接的接口,可以在其上构建更复杂的实体。这个目标通过定义许多紧凑、单一用途的方法来实现,而不是使用较少数量的带有控制标志参数的复杂、多用途方法。

7. 增强可靠性、可用性和可扩展性

可靠性、可用性和可扩展性是 Java EEJava SE 平台的主题,也是未来 Java 平台的方向。JDBC API 通过增强多个领域的支持来坚持这些主题,包括资源管理、跨逻辑连接的预编译语句重用和错误处理。

8. 保持与现有应用程序和驱动程序的向后兼容性

现有的支持 JDBC 技术的驱动程序以及依赖这些驱动程序的应用程序,必须能够继续在支持 JDBC 4.2 APIJava 虚拟机实现中运行。仅使用较早版本 JDBC API 中已定义能力的应用程序,不应因升级到 JDBC 4.2 而被迫修改代码。

9. 与 JDBC RowSet 实现的密切关联

Java SE 包含由 JDBC RowSet 规范(JSR-114)定义的标准 JDBC RowSet 实现。本规范会在工具类层面和元数据语言层面补充一组相关能力,从而帮助开发者更容易地将支持 JDBC 技术的应用程序迁移到 JDBC RowSet 模型。该模型不仅支持断开连接的数据访问,也能从 XML 的角度处理关系型数据存储。

10. 允许与连接器的向前兼容性

连接器架构定义了一种标准方式来打包和部署资源适配器,允许 Java EE 容器将其连接、事务和安全管理与外部资源的管理集成。JDBC APIJDBC 驱动程序到连接器架构提供了迁移路径。使用 JDBC 技术的产品供应商应该能够逐步向实现连接器 API 迈进。预期 JDBC 驱动程序供应商将围绕其现有数据源实现编写资源管理器包装器,以便它们可以在连接器框架中重用。

11. 明确指定要求

JDBC 合规的要求需要明确且易于识别。JDBC 规范和 API 文档(Javadoc)将阐明哪些功能是必需的,哪些是可选的。

赞助商