关闭

JDBC驱动类型

标签: jdbcjava
364人阅读 评论(0) 收藏 举报
分类:
java jdbc驱动的四种类型请问具体都是什么意思

1、jdbc-odbc桥

2、本地API部分java驱动

3、网络协议完全java驱动

4、本地协议完全java驱动

问题一:在这四种驱动中是否都需要设置数据源?

问题二:这四种驱动都是什么意思?

请用下列代码为例各举一例将这四种驱动都用上(数据库就sqlserver2000)

Class.forName(""); 

String url=""; 

 

提问者: floatfox0103 - 助理 三级 最佳答案type 1:jdbc-odbc桥 

type 2:本地api驱动 

type 3:网络协议驱动 

type 4:本地协议驱动 

 

Type 1: jdbc-odbc桥 

Jdbc-odbc 桥 是sun公司提供的,是jdk提供的的标准api. 这种类型的驱动实际是把所有 jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码.( 本地数据库驱动代码是指 由数据库厂商提供的数据库操作二进制代码库,例如在oracle for windows中就是oci dll 文 件) 

 

jdbc-odbc桥 | odbc | 厂商DB代码---------------数据库Server

 

只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- odbc方法对于客户端已经具备odbc driver的应用还是可行的.

 

但是,由于jdbc-odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库.所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的.而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 internet ,intranet的应用也是不合适的.因为,你不可能要求所有客户都能找到odbc driver. 

 

=====一般ACCESS用到的比较多,初学者用。实际项目是不用的。

 

Type 2: 本地Api驱动 

 

本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库.

 

这种方法需要本地 数据库驱动代码. 本地api驱动 | 厂商DB代码---------------数据库Server (图二) 这种驱动比起jdbc-odbc桥执行效率大大提高了.但是,它仍然需要在客户端加载数据库厂商 提供的代码库.这样就不适合基于internet的应用.并且,他的执行效率比起3,4型的jdbc驱动 还是不够高. 

 

Type3:网络协议驱动 这种驱动实际上是根据我们熟悉的三层结构建立的. jdbc先把对数局库的访问请求传递给网 络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器.如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 jdbc驱动程序作为访问数据库的方法. 网络协议驱动---------中间件服务器------------数据库Server 

 

由于这种驱动是基于server的.所以,它不需要在客户端加载数据库厂商提供的代码库.而且 他在执行效率和可升级性方面是比较好的.因为大部分功能实现都在server端,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中. 但是,这种驱动在中间件层仍然需要有配置 其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好. 

 

Type4 本地协议驱动 

这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求.由于4型驱动写的应用可 以直接和数据库服务器通讯.这种类型的驱动完全由java实现,因此实现了平台独立性. 本地协议驱动---------数据库Server 

 

由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器.所 以它的执行效率是非常高的.而且,它根本不需要在客户端或服务器端装载任何的软件或驱动. 这种驱动程序可以动态的被下载.但是对于不同的数据库需要下载不同的驱动程序. 

 

以上对四种类型的jdbc驱动做了一个说明.那么它们适合那种类型的应用开发呢? 

 

Jdbc-odbc桥由于它的执行效率不高,更适合做为开发应用时的一种过度方案,或着对于初学 者了解jdbc编程也较适用. 对于那些需要大数据量操作的应用程序则应该考虑2,3,4型驱动.在intranet方面的应用可以 考虑2型驱动,但是由于3,4型驱动在执行效率上比2型驱动有着明显的优势,而且目前开发 的趋势是使用纯java.所以3,4型驱动也可以作为考虑对象. 至于基于internet方面的应用就只有考虑3,4型驱动了. 因为3型驱动可以把多种数据库驱 动都配置在中间层服务器.所以3型驱动最适合那种需要同时连接多个不同种类的数据库, 并且对并发连接要求高的应用. 4型驱动则适合那些连接单一数据库的工作组应用。

 

现在是纯java 开发,所以一般都用type4的jdbc driver。 


JDBC驱动类型例子实例教程 - 因为各种各样的操作系统和硬件平台的Java JDBC驱动程序的实现方式各不相同。Sun已经划分成四类,类型1,2,3和4。

JDBC驱动是什么?

JDBC驱动程序实现JDBC API定义的接口和数据库服务器交互

例如,使用JDBC驱动程序使您可以打开数据库连接,并与它进行交互,通过发送SQL或数据库命令,然后接收结果返回到Java程序。

java.sql包中附带的JDK包含各种类定义他们的行为和他们的实际实现第三方的驱动程序。第三方供应商在他们的数据库驱动程序实现了java.sql.Driver接口。

JDBC 驱动类型:

因为各种各样的操作系统和硬件平台的Java JDBC驱动程序的实现方式各不相同。Sun已经划分成四类,类型1,2,3和4,这是下面说明的实施类型:

类型1: JDBC-ODBC 桥接驱动:

类型1驱动程序,JDBC桥是用来访问ODBC驱动程序安装在每台客户机。使用ODBC需要配置您的系统数据源名称(DSN)表示目标数据库。

当Java刚出来的时候,这是一个有用的驱动程序,因为大多数的数据库只支持ODBC访问,但现在这种类型的驱动程序,建议只对实验性使用,或当没有其他选择的情况下。

JDBC-ODBC桥自带的JDK 1.2是这种驱动器一个很好的例子。

类型 2: JDBC-Native API:

在类型2驱动程序,JDBC API调用被转换成原生的C / C++ API调用的数据库是唯一的。这些驱动程序通常由数据库厂商提供的JDBC-ODBC桥以同样的方式使用供应商特定的驱动程序必须安装在每台客户机。

如果我们改变了数据库,我们必须改变原生API,因为它是特定于数据库,他们大多已过时,但你可以实现一定的速度增加一个类型2驱动程序,因为它消除了ODBC的开销。

Oracle调用接口(OCI)驱动程序是一个类型2驱动程序的一个例子。

类型 3: JDBC-Net 纯Java:

在类型3驱动中,用一个三层的方法来访问数据库。 JDBC客户端使用标准的网络套接字通信的中间件应用服务器。接口的信息,然后转换到调用的DBMS所要求的格式,并转发到数据库服务器的中间件应用服务器。

这种驱动器是非常灵活的,因为它不需要安装在客户端上和实际上可以提供一个单一的驱动程序访问多个数据库的代码。

能想到的应用程序服务器作为一个JDBC“代理”,这意味着它让客户端应用程序调用。因此,需要一些知识的应用服务器的配置,以便有效地使用这个驱动程序类型。

应用程序服务器可以使用类型1,2,或4驱动程序与数据库进行通信,了解细微之处是有用的。

类型4: 100% 纯Java:

类型4的驱动程序,基于纯Java驱动程序,直接与供应商的数据库通过套接字连接。这是最高性能的驱动程序,可用于数据库,通常是由供应商自行提供。

这种驱动器是非常灵活的,不需要在客户端或服务器上安装特殊的软件。此外,这些驱动器可以动态下载。

MySQL的Connector/J驱动是一个Type 4驱动程序。因为他们的专有性网络协议,数据库厂商通常提供类型4驱动程序。

应使用哪个驱动程序?

如果访问的是以下类型的数据库,如Oracle,Sybase或IBM,那么首选驱动程序类型4

如果Java应用程序在同一时间访问多个类型的数据库,类型3是优选的驱动程序。

类型2驱动程序在 第3类或4类驱动程序不可用去访问数据库的情况下用

类型1驱动程序不被认为是部署级别的驱动程序,通常仅用于开发和测试目的。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:406142次
    • 积分:4676
    • 等级:
    • 排名:第6666名
    • 原创:23篇
    • 转载:454篇
    • 译文:1篇
    • 评论:31条
    最新评论