21.2.2 JDBC驱动程序的分类
JDBC被称为数据源驱动,其具备什么特点?又与ODBC有什么关系或区别呢?
1.JDBC和ODBC的区别
在JDBC的概念中,涉及另一个概念:ODBC,所以,在讲述JDBC的驱动程序分类之前,首先介绍什么是ODBC。ODBC是指Open DataBase Connectivity,即开放数据库互连,它建立了一组规范,并且提供了一组对数据库访问的标准API(应用程序编程接口),这些API利用SQL来完成其大部分任务。ODBC也提供了对SQL的支持。
JDBC(Java DataBase Connectivity)是Java与数据库的接口规范。它由Java语言编写的类和接口组成,大致分为两类:
❑针对Java程序员的JDBC API。
❑针对数据库开发商的底层的JDBC driver API。
2.JDBC的结构和种类
JDBC驱动程序由实施了这些接口的类组成,JDBC的总体结构有4个组件:应用程序、驱动程序管理器、驱动程序和数据源。
(1)第一类是将JDBC转换成ODBC驱动器,依靠ODBC驱动器和数据库通信。在这种方式下,ODBC驱动程序和桥代码必须出现在用户的每台机器中,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。
(2)第二类是本地API一部分用Java来编写的驱动程序。这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其他DBMS的调用。
注意 像桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。
(3)第三类是JDBC网络纯Java驱动程序。这种驱动程序将JDBC转换为与DBMS无关的网络协议,这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上,所用的具体协议取决于提供者。
通常,这是最为灵活的JDBC驱动程序。所有这种解决方案的提供者,都提供适合于Intranet用的产品。为了使这些产品支持Internet,它们必须处理Web所提出的安全性、通过防火墙的访问等额外要求,几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。
(4)第四类是本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议,这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源。
第(3)、(4)类驱动程序将成为从JDBC访问数据库的首选方法。第(1)、(2)类驱动程序在直接的纯Java驱动程序还没有上市前,将会作为过渡方案来使用。对第(1)、(2)类驱动程序可能会有一些变种,这些变种要求有连接器,但通常这些是更加不可取的解决方案。第(3)、(4)类驱动程序提供了Java的所有优点,包括自动安装。