1

2.1 JDBC API 的历史

JDBC API 是一种成熟的技术,1997 年, 首次提出了 JDBC 规范,初始的版本中, JDBC API 仅提供一套针对数据库的调用级别接口。

从 2.0 版本和 2.1 版本开始,JDBC API 的功能得到增强,它能够支持更高级别的应用程序, 也提供一些高级特性,供开发应用服务器的开发者使用。

3.0 版本小范围地补充了一些遗漏的功能。

4.2 版本的目标主要有两个

  • 增强应用程序开发者对于 “简易开发” 的体验
  • 增强企业应用级别的特性,提供一些工具集和 API 来更好地管理数据源

2.2 JDBC API 的目标

下面列出了 JDBC API 的目标和设计理念

2.2.1 与 Java EE 和 Java SE 平台无缝融合

JDBC API 是 Java 平台的一部分,JDBC 4.2 API 应该跟随着 Java SE 平台和 Java EE 平台的大方向走,对于 Java 语言的新特性和改进,都应该也体现在 JDBC API 4.2 的规范中。

2.2.2 符合 SQL:2003 标准

JDBC API 提供了对标准SQL的对接,JDBC 3.0 致力于支持 SQL99 标准,对于 JDBC 4.2 来说,它的目标就是支持 SQL2003 标准

2.2.3 提供与特定厂商实现无关的公有特性访问

JDBC API 需要提供一种通用的特性访问形式,与具体厂商的实现无关。以前需要通过应用程序在上层去获得的特性,现在只需要通过 JDCB API 就能做到,不过,这对 API 的通用性和灵活性有较高的要求。

2.2.4 保持对SQL的关注

JDBC API 主要就是关注如何访问关系型的数据,这个目标从 3.0 版本以来,一直就是整个 JDBC API 规范的核心目标,JDBC API 规范将持续以易于使用为主题,对基于 SQL 的应用程序提供 API 和工具类的改进,不排除会使用其它的技术,比如说 XML、CORBA 和非关系型的数据源。

2.2.5 作为高级层次 API 和工具的基础

JDBC API 提供了一种标准的访问方式,能够应对大范围的数据源种类以及遗留系统,在 JDBC API 抽象层的隔离下,具体的 API 实现方式对使用者是透明的,对于那些想要开发出跨平台的工具和应用程序的厂商来说,JDBC API 相当于提供了一个非常有价值的平台。 JDBC API 可以作为构建高层次应用的基础设施,比如说 EJB,这都得益于 JDBC API 是提供了调用级别的接口。

2.2.6 保持简单

JDBC API 的宗旨就是容易使用,能成为构筑复杂程序的得力帮手,为了实现这个目标,JDBC API 定义了很多简洁高效,职责单一的接口方法,而不是在少量的方法里,通过增加一些flag类型的参数,使得一个方法变得臃肿,并且职责不单一。

2.2.7 增强可靠性、可用性和可扩展性

可靠性、可用性和可扩展性,这三个特性是 Java EE 平台和 Java SE 平台的主旨,也是未来 Java 平台的一个发展方向。JDBC API 通过增强资源管理、预编译语句的重用,以及错误处理来呼应这三个特性。

2.2.8 保持对已有应用和驱动的向后兼容性

已有的实现了 JDBC 4.2 的驱动,以及使用这些驱动的应用程序,必须继续运行在实现了 JDBC 4.2 规范的 Java 虚拟机中,而使用了旧版本的 JDBC 驱动和应用程序,无须改变它们的虚拟机运行环境,它们也可以直接地迁移到 JDBC 4.2 的环境中。

2.2.9 解除与 JDBC RowSet 规范的关系

Java SE 包含了一个标准的 JDBC RowSet 规范的实现,这个规范属于 JSR-114,该规范提供了一系列工具类层次和元数据语言层次的工具,允许开发者能够轻易地将使用到了 JDBC 技术的应用程序转变为 JDBC RowSet 模式的应用程序,这种模式允许存在不基于连接的数据访问,以及具有对数据源取自于 XML 的关系型数据的管理能力。

2.2.10 允许前向兼容为 Connector 模式

Connector 架构定义了一种打包和发布资源适配器的标准,这个标准使得 Java EE 容器能够将它自身的连接管理、事务管理,以及安全管理与外部数据源集成起来,JDBC API 为 JDBC 驱动转变为 Connector 架构提供了一个迁移路径。对于 JDBC 驱动的厂商来说, JDBC API 应该允许它们以增量的方式慢慢迁移到 Connector 架构,厂商需要写多一层资源管理包装器,这样就能把现有的驱动应用到 Connector 框架中。

2.2.11 明确指定 JDBC 规定

对于 JDBC 的规定,需要做到没有歧义,并且也容易辨认,JDBC API 规范以及 Javadoc 将会清楚地声明哪些规定的是必须要做到的,哪些是可选的。

扫一扫关注我的微信公众号


ytbean
3.1k 声望714 粉丝

十年学会编程


引用和评论

0 条评论