JDBC驱动类别浅析

一、JDBC -ODBC桥

JDBC -ODBC桥加ODBC驱动程序,JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。这种类型的JDBC驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。

Application--->JDBC -ODBC Bridge(Type1 jdbc driver)---->JDBC -ODBC Library--->ODBC Driver-->Database

只要本地机装有相关的odbc驱动那么采用jdbc -odbc桥几乎可以访问所有的数据库,jdbc - odbc方法对于客户端已经具备odbc driver的应用还是可行的。适用于快速的原型系统,没有提供JDBC 驱动的数据库如Access。
但是,由于jdbc -odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库.所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的.而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 internet ,intranet的应用也是不合适的。

二、本地Api驱动:JAVA to Native API

这种类型的驱动程序把客户机API上的JDBC驱动调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。
Application--->JDBC Driver(Type2 jdbc driver)---->Native Database library---->Database 利用开发商提供的本地库来直接与数据库通信。本地api驱动直接把jdbc 调用转变为数据库的标准调用再去访问数据库。

三、网络协议驱动:Java to net

这种驱动程序将JDBC 转换为与DBMS无关的网络协议,这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC 驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。

Application--->Jdbc Driver(Type3 jdbc driver)----->java middleware--->JDBC Driver---->Database

JDBC先把对数局库的访问请求传递给网络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用传给数据库服务器.如果中间件服务器也是用java开发的,那么在在中间层也可以使用1,2型 jdbc 驱动程序作为访问数据库的方法。
由于这种驱动是基于server的.所以,它不需要在客户端加载数据库厂商提供的代码库.而且他在执行效率和可升级性方面是比较好的.因为大部分功能实现都在server端,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中. 但是,这种驱动在中间件层仍然需要有配置 其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好。

四、本地协议驱动:JAVA to native dababase

这种类型的驱动程序将JDBC 调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。

相关推荐