352
JSP+Oracle 动态网站开发
可以看作是在数据层和应用程序之间的一个中间层,因此利用 ODBC 访问数据库的效率要低
于直接通过数据库专用驱动的访问。 ODBC 最大的问题不是效率,而是平台的支持,这是因为
ODBC 产生于 Windows 操作系统,只有在 Windows 平台下才能得到最好的支持。
最初的 Java 应用程序也是通过 ODBC 连接数据库的, 由于 ODBC 的 API 是使用 C 语言进
行调用的,这就使得 Java 的许多优秀特性无法充分发挥,比如平台无关性、面向对象的特性
等。基于这些技术上的缺陷, Sun 公司不失时机地推出了具有 Java 语言特性的独有的数据库解
决方案—— JDBC 。JDBC 在继承 ODBC 接口与具体数据库无关的设计理念的基础上,进一步
利用了 Java 语言的平台无关性,使得程序员可以轻松利用 JDBC 的 API 对数据库进行操作,
从而编写出真正不依赖于具体数据库、具体操作平台的代码。这些 JDBC 的 API 就是 Java 基
础类库中的 java.sql 包,任何一个需要访问数据库的 Java应用程序都需要导入这个包。
Java 应用程序通过 JDBC 接口访问数据库有 5 种具体的底层处理机制。
(1) JDBC-ODBC 桥结合 ODBC 驱动程序
一个 JDBC-ODBC 驱动程序提供了能够访问一个或多个 ODBC 驱动程序的 JDBC API ,它
是一个本地的解决方案。 这种方式将 JDBC 请求转换为 ODBC 请求,因此在每一个数据库的客
户端都必须安装 ODBC 驱动,这种方式不适合远程访问数据库。
(2) 原生 API 结合 Java 驱动程序
这种方式同样也是一种本地解决方案。它将对 JDBC API 的调用转换为对 Oracle、SQL
Server、 Sybase等其他数据库客户端 API 的调用,因而每个客户端上要安装对应于具体数据库
的驱动程序。
(3) 网络协议结合纯 Java 驱动程序
这种方式通过一个服务器将 JDBC API 调用转换为中间网络协议发送给网络上的另一个服
务器,然后再由这个服务器将这种中间网络协议转换为对指定数据库系统的调用。这里,中间
网络协议起到一个读取数据库的中间件的作用, 能够连接许多类型的数据库,而在客户端上无
须安装特定的数据库驱动,因而是最灵活的 JDBC 模式。这种驱动程序适合于通过 Internet 访
问数据库,但要考虑安全认证的问题。
(4) 原生协议结合纯 Java 驱动程序
这种驱动程序一般由数据库厂商实现。 它将 Java API 的调用转换为指定的数据库系统使用
的网络协议。这种驱动程序使用的中间转换最少,而且一般都是由数据库厂商直接提供的,因
此使用起来稳定性最高。
(5) JDO
JDO(Java Data Object)是 Sun 公司新推出的一个访问数据库的 API ,它定义了新的数据存取
的模型。 JDO 的实现方式是在 JDBC 技术的基础上进行封装,将数据库相关的 JDBC 连接细节
封装隐藏起来, 使程序员在设计连接数据库的应用程序时只需关注创建那些实现商业逻辑的类
和用它们来表现数据源的数据,而这些类和数据源之间的映射则由专家来完成, 这样一来就给
开发数据库的程序员带来了极大的便利。
纵观上面这 5 种使用 JDBC 接口访问数据库的驱动机制,后 3 种驱动是比较理想的选择,
而前两种驱动是用 Java 访问数据库时最常用的方式。
一般来说, Java 应用程序访问数据库的过程 (见图 8.1)如下。
评论0
最新资源