JDBC驱动类别浅析

开发 后端
本文简要分析JDBC驱动的类型,包括JDBC -ODBC桥、本地Api驱动、网络协议驱动和本地协议驱动等。

一、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访问的一个很实用的解决方法。

Application--->Jdbc driver(type4 jdbc driver)----->database engine--->database

这种驱动直接把JDBC调用转换为符合相关数据库系统规范的请求.由于4 型JDBC驱动写的应用可以直接和数据库服务器通讯.这种类型的驱动完全由java实现,因此实现了平台独立性。最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力。

 

【编辑推荐】

  1. 简述Spring JDBC的学习
  2. J2EE技术之JDBC连接数据库的各种写法
  3. JBoss JDBC驱动报错问题分析与解决
  4. JavaBean中使用JDBC方式进行事务处理
  5. JDBC与JSP简单模拟MVC三层架构
责任编辑:佚名 来源: CSDN
相关推荐

2009-06-19 17:14:47

JDBC驱动设置

2009-06-19 15:28:31

JDBC分布式事务

2009-07-06 18:17:46

JDBC驱动程序

2009-07-20 13:58:07

MySQL JDBC驱

2021-05-13 07:58:05

JDBC接口PreparedSta

2010-04-16 16:12:51

jdbc分页

2021-09-08 09:22:23

领域驱动设计

2009-07-22 15:58:34

JDBC调用Oracl

2009-07-14 16:02:42

JDBC例子

2009-06-15 14:18:00

netbeans配置JDBC驱动程序

2011-06-29 15:14:22

Qt Embedded 键盘

2011-06-29 15:36:21

Qt Embedded 键盘

2009-12-01 14:46:36

Open Suse安装

2009-06-16 14:08:10

JBoss JDBC驱

2009-07-08 18:20:21

JDBC驱动

2009-07-20 18:01:38

Oracle JDBC

2009-09-04 10:10:33

Visual Basi

2010-06-17 15:33:16

SQL Server

2022-11-27 17:21:04

ClickHouseJDBC函数

2021-06-28 10:25:47

MySQL语句接口
点赞
收藏

51CTO技术栈公众号