`
sxz20041919
  • 浏览: 3186 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

4种类型的JDBC驱动程序(转)

阅读更多
4种类型的JDBC驱动程序[转]
                                      
题目中所说的\"1,2,3,4\" 实际上是指jdbc驱动的四种类型.本文将对jdbc driver
的四种类型以及不同类型的driver适合于哪种层次的应用做一个简单介绍,
如果你现在正准备开发有关数据库的java应用,你也许会需要从网上下载相关数据库的jdbc
driver .在下载网页上你可能会发现这样的说明\"this is a type 4 drvier\"或this is type 3 driver那
么到底应该下载哪一个,下载后的driver是否适合我们要开发的应用呢?还是让我们先解释
一下这四种类型的具体含义吧。
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.

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型驱动则适合那些连接单一数据库的工作组应用.

说了这么多,那么相关的jdbc驱动应该在哪里下载呢?实际上各大数据库厂商
(oracle,sybase,db2)对jdbc多都有很好的支持(微软例外).你可以到他们的官方站点去下载.
由于微软一直没有开发sqlserver的jdbc驱动,所以只好用其他厂商提供的驱动.这里向大家
推荐几个站点
http://www.idssoftware.com/jdbcdrv.html (3型)
http://www.jturbo.com/ (4型)
http://www.inetsoftware.de/(4型)
特别推荐I-net Sprinta 2000 的sqlserver驱动,因为他的驱动只有47K没有时间限制,并且是4
型驱动.

对于在编程时如何用JDBC建立连接,本文就不做详细介绍了.读者可以在jdk中找到例子,目
录为jdk/demo/jfc/dbdemos. 如果你下载其他厂商的驱动程序在压缩文件中会有例子.
如果你在applet中调用jdbc驱动访问数据库一定要注意web server和 数据库 server一定
要在同一台机器.这是java applet 安全规范所要求的.


分享到:
评论

相关推荐

    JDBC驱动

    本软件为MS SQL SERVER2000 的jdbc驱动程序,在用java连接sql server2000时必须要按照此软件。

    TDengine jdbc驱动包

    TDengine jdbc驱动包

    Oracle 数据库 11g 第 2 版 JDBC 驱动程序 ojdbc5 ojdbc6

    它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 2. ojdbc5_g.jar(3,081,328 字节)— 与 ojdbc5.jar 一样,除了类通过“javac -g”编译并包含跟踪代码。 3. ojdbc6....

    Oracle 数据库 11g 第 1 版 (11.1.0.7.0) JDBC 驱动程序

    它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 2.ojdbc5_g.jar(2,942,818 字节)— 与 ojdbc5.jar 一样,除了类通过“javac -g”编译并包含跟踪代码。 3.ojdbc6.jar...

    Oracle 11g 第 1 版 (11.1.0.7.0) JDBC 驱动程序下载

    它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 ojdbc6.jar(1,988,051 字节)— 用于 JDK 1.6 的类。它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection ...

    neo4j-jdbc:带有BOLT协议的Neo4j 3.x的Neo4j JDBC驱动程序

    概述:Neo4j JDBC驱动程序 您可以在以下位置找到完整的文档: : 这是Neo4j的官方JDBC驱动程序。 该驱动程序主要是由开发的,该公司是Neo4j的认证咨询和集成解决方案合作伙伴。 非常感谢您所做的所有工作。 笔记先前...

    Oracle 11.1.0.6.0 JDBC 驱动包

    它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 ojdbc6.jar(1,977,267 字节)— 用于 JDK 1.6 的类。它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection ...

    pgjdbc:Postgresql JDBC驱动程序

    是用Pure Java(类型4)编写的开源JDBC驱动程序,并以PostgreSQL本机网络协议进行通信。 状态 支持的PostgreSQL和Java版本 使用协议版本3.0和Java 8 (JDBC 4.2)或更高版本,驱动程序的当前版本应与PostgreSQL 8.4...

    oraclejdbc驱动

    它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 ojdbc5_g.jar (3,081,328 字节)— 与 ojdbc5.jar 一样,除了类通过“javac -g”编译并包含跟踪代码。 ojdbc6.jar (2,...

    pgql-jdbc:Oracle数据库中用于PGQL的JDBC驱动程序

    概述:pgql-jdbc 这是基于的JDBC驱动程序。 该驱动程序支持以下类型。 驱动名称驾驶员等级驱动程式网址RDBMS上的PGQL ...

    pgJDBC-issue:修改过的Postgresql JDBC驱动程序

    是用Pure Java(类型4)编写的开源JDBC驱动程序,并以PostgreSQL本机网络协议进行通信。 地位 支持的PostgreSQL和Java版本 当前版本的驱动程序应与PostgreSQL 8.2及更高版本(使用协议的3.0版)以及Java 6 (JDBC ...

    pgjdbc, PostgreSQL驱动程序驱动程序.zip

    pgjdbc, PostgreSQL驱动程序驱动程序 驱动程序PostgreSQL驱动程序( 短 PgJDBC ) 允许Java程序使用标准的数据库独立Java代码连接到PostgreSQL数据库... 是用纯 Java ( 类型 4 ) 编写的开放源码JDBC驱动程序,并在Postgr

    jdbc学习全程

    在几个说明四种不同类型的 JDBC 驱动程序的示例之后,本教程接下来会讨论使用 JNDI 的 DataSource 对象。其中还包括关于 JNDI 和如何绑定、使用、重新绑定和删除 DataSource 对象的讨论。最后介绍并说明了连接池的...

    JDBC数据访问接口

    所有的JDBC驱动程序都应该提供一个实现java.sql. Driver接口的类,在加载Driver类时,应创建自己的实例并向java.sql.DriverManager类注册该实例。 通常情况下通过java.lang.Class类的静态方法forName(String ...

    JDBC详解HTML-JDBC.pp

    1>.JDBC驱动程序类型: <1>.JDBC-ODBC桥加ODBC驱动程序:需要ODBC驱动,适合于企业网或三层结构应用程序 <2>.本地API:需要驱动程序的二进制代码支持 <3>.JDBC网络纯java驱动程序:将JDBC转换为与DBMS无关的网络...

    mysql connector java(mysql数据库JDBC驱动) v5.1.7Jar安装包.rar

    《mysql connector java(mysql数据库JDBC驱动) v5.1.7Jar安装包.rar》是一款非常实用的数据库JDBC驱动,适用于Java开发人员在开发过程中连接MySQL数据库。该驱动包含了一系列的API,可以帮助开发人员轻松地连接MySQL...

    JDBC 基础知识 .ppt

    了解JDBC的概念及必要性 了解JDBC驱动程序类型 理解JDBC 程序的结构 运用JDBC进行数据库编程

    java_database_handle.rar_JDBC程序

    了解JDBC的概念和必要性 了解JDBC驱动程序类型 了解java.sql包 理解JDBC程序的结构 使用JDBC进行数据库编程

    Java-Web程序设计实战-第8章-JDBC详解.pptx

    JDBC是应用程序编程接口,描述了一套访问关系数据库的标准Java类库,并且还为数据库厂商提供了一个标准的体系结构,让厂商可以为自己的数据库产品提供JDBC驱动程序,这些驱动程序可以用Java应用程序直接访问厂商的...

    java数据库连接方法和实现

    JDBC驱动程序共分四种类型: 类型1  JDBC-ODBC桥 这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll)。 类型2 ...

Global site tag (gtag.js) - Google Analytics