jdbc与odbc的区别与应用


 JDBC 与 ODBC 的区别与应用 JDBC 与 ODBC 都可以实现类似的功能,但 JDBC 与 ODBC 的区别是他们的开发架构不同,其实 现细节上也有所差异。 谈到 JDBC 与 ODBC 的区别,JDBC 和 ODBC 其实都是用来连接数据库的启动程序。ODBC 中文名字叫做开放数据库互联,是微软技术人员开发的开放服务结构中有关数据库的一个组 成部分,它建立一组相关的规范,并提供了一组对数据库访问的标准应用程序编程接口。简 单的说,ODBC 就是应用程序与数据库系统进行交互的工具。一个给予 ODBC 的应用程序对数 据库的操作不依赖于人员的数据库系统,不支持与数据库管理系统打交道,所有的数据库操 作由对应的数据库系统的 ODBC 驱动程序来完成。从而可以实现以同一的方式来处理所有的 数据库。 而 JDBC 与 ODBC 类似,也是一个应用程序与数据库进行通信的中介。只是他们的开发商 不同而已。JDBC 是由 Sun 公司向关系型数据库系统厂商提供 JDBC 的规格与需求;然后各大 厂商遵循标准规格设计出符合自己数据库产品的 JDBC 驱动程序。虽然 JDBC 与 ODBC 都可以 实现类似的功能,但是他们的开发架构不同,其实现细节上也有所差异。为此数据库管理员 必须要了解这方面的差异,并在工作中根据实际情况来选择合适的数据库驱动程序。 JDBC 与 ODBC 的区别:JDBC 的优点。 JDBC 应用程序接口是 JAVA 程序语言内针对数据存取所涉及的程序开发接口,其内部是 由许多类与接口构成。而 ODBC 则是由 C 语言来开发的。由于两者开发平台的不同,为此开 发不同种各自的特点也就传递到了这连个数据库启动程序中。根据笔者的了解,相对 ODBC 数据库启动程序来说,JDBC 有如下几个优点。若笔者概括的不够全面的话,欢迎大家来补 全。 1、JDBC 要比 ODBC 容易理解。大家学过编程的也许会有一个直观的感受,就是 JAVA 语 言要比 C 语言好学的多。因为 JAVA 语言的设计思路是面向对象的,跟人的认识思维比较接 近,为此比较容易被人接受,学习起来也相对轻松一点。而 C 语言则就比较抽象了,跟人的 认识规律有一定的距离。为此他们开发出来的产品也有类似的特点。在 ODBC 中,虽然可以 实现与数据库的交互,但是实现起来比较复杂。如一个简单的查询,也需要分为好几块内容; 而在 ODBC 驱动程序内部再去进行整合,进行一些复杂的操作。这不仅降低了数据库启动程 序的性能,而且也给程序开发者开发应用程序带来了一定的负面影响。而 JDBC 数据库启动 程序在设计的时候就包含了大部分基本数据操作功能,为此在编写一些常规的数据库操作语 句时,如查询、更新等等,其所需要的代码比 ODBC 要少的多。故从这方面来说,JDBC 数据 库启动程序要比 ODBC 容易理解。 2、JDBC 数据库驱动程序是面向对象的,完全遵循 JAVA 语言的优良特性。通常情况下, 只要有 JAVA 车功能需设计基础的用户都可以在最短时间内了解 JDBC 驱动程序的架构,比较 容易上手,可以轻而易举的开发出强悍的数据库应用程序。而 ODBC 的话,由于其内部功能 复杂,代码编写要求高。为此即使是一个 C 语言的高手,仍然需要花费不少的时间去了解这 个数据库启动程序;在编写代码的时候,还离不开相关的参考书籍。 3、JDBC 的移植性要比 ODBC 要好。通常情况下,安装完 ODBC 驱动程序之后,还需要经 过一定的配置才能够使用。而不同的配置在不同数据库服务器之间不能够通用。也就是说, 装一次需要配置一次。但是JDBC 数据库驱动程序则不同。如果采用JDBC 数据库驱动程序的 话,则知需要选择适当的 JDBC 数据库驱动程序,就不需要进行额外的配置。在安装过程中, JDBC 数据库驱动程序会自己完成相关的配置。为此 JDBC 的移植性要比 ODBC 要好。 总之 JDBC 与 ODBC 都是数据库的启动程序,它们的本质是相同的,都是为了处理 SQL 语句而设计的。而且 JDBC 在设计的时候,其也是在 ODBC 的基础上进行设计的,并保留了 ODBC 数据库驱动程序的部分功能。或者说,我们可以把 JDBC 看作是 ODBC 的另一个高级版 本也未尝不可。JDBC 主要在操作上、友好性上做了一定的改进。 JDBC 与 ODBC 的区别:什么时候采用 JDBC? 虽然说 JDBC 数据库启动程序比 ODBC 来说具有不少的优点,但是也并不是说在所有的情 况下采用 JDBC 数据库启动程序都能够起到不错的效果。数据库管理员还需要根据企业的实 际应用环境来进行选择。通常情况下,如果符合下面几种情况的任何一种,笔者建议采用 JDBC 数据库驱动程序。 一是采用 Oracle 公司的 Oracle JDeveloper 10G 来开发应用程序。JDeveloper 10G 是 Oracle 公司提供的一个可视化的开发环境。可以帮助数据库管理员与开发人员方便的完成 一些复杂的功能。如数据库开发人员可以借这个工具来设计 WEB 应用程序的网页执行流程; 如可以用来开发业务服务层组件;如可以在 JSP 与 JClient 应用程序内实现数据绑定功能等 等。特别是在利用这个工具开发业务服务层组件的时候,可以直接浏览与存取业务组件所对 应的数据。数据库开发人员不用等到应用程序撰写好后才测试数据库的存取功能。显然这个 特性让数据库开发人员在开发数据库应用程序的时候格外的便利。而为了配合这个开发工 具,Oracle公司专门开发了对应的 JDBC 驱动程序。为此如果数据库开发人员采用 JDeveloper 开发工具的话,那么采用 JDBC 要比采用 ODBC 的兼容性要好。所以如果采用了这种开发工具 的话,最好能够采用 JDBC 数据库启动程序。 二是如果应用程序采用的是 JAVA 开发平台的话,那么最好使用 JDBC 数据库启动程序。 其实 JDeveloper 采用的也是 JAVA 开发平台。这主要是因为如果 JAVA 程序直接调用 ODBC 的 C 语言应用程序接口时,比较容易产生安全方面的问题。如Java 语言是不采用指针的(因 为指针的处理效率比较慢),而 ODBC 所采用的 C 语言却使用了大量的指针。为此如果使用 JAVA 语言平台来开发数据库应用程序,若采用 ODBC 数据库驱动程序的话,就不那么合适了。 另外由于 JDBC 也是 JAVA 语言开发的,所以其兼容性也会好许多。为此笔者建议,如果数据 库开发人员采用的是 JAVA 语言开发平台的话,那么最好采用 JDBC 驱动程序,而不是 ODBC 驱动程序。 在其他的情况下,数据库管理员与开发人员可以根据自己的习惯来选择合适的数据库驱 动程序。 JDBC 与 ODBC 的区别:能否从 ODBC 顺利过渡到 JDBC? 也许数据库管理员以前采用的是 ODBC 驱动程序,而如果数据库管理员现在需要采用 JDBC 驱动程序,那么能否实现顺利过渡呢?答案是肯定的。在 JDBC 驱动程序中有一类叫作 JDBC-ODBC 桥接启动程序。这种类型的 JDBC 数据库驱动程序其底层是通过 ODBC 驱动程序来 连接数据库的。如果原先的应用程序是基于 ODBC 数据库驱动程序的,或者数据库没有提供 对应的 JDBC 驱动程序,则数据库管理员可以利用 JDBC-ODBC 桥接驱动程序来实现。也就是 说,桥接驱动程序可以利用现有的 ODBC 驱动程序来存取关系型数据库。为此者不仅可以保 留先前的开发架构(通过 ODBC 来存取数据),还可以立即使用 JAVA 作为新的开发环境,从而 实现 ODBC 数据库驱动程序到 JDBC 的顺利转型。 不过在采用这种桥接驱动程序的时候,需要注意几个问题。一是这个桥接驱动程序仍然 需要用到 ODBC 数据库驱动程序。因为桥接驱动程序直接联系的对象是 ODBC 驱动程序,然后 再通过 ODBC 驱动程序去访问数据库。为此在客户端必须先安装并配置好 ODBC 驱动程序。如 果采用的是三层式的开发结构,也需要安装 ODBC 驱动程序。其次,在这种模式下,应用程 序先调用 JDBC,然后再通过 JDBC 调用 ODBC,最后再跟数据库进行通信。显然其中间多了几 个环节。由于其中间环节比较多,但数据访问出现问题的时候,就不怎么好查问题。这就好 像一道水管,如果中间的接口多了的话,则发生漏水的几率就比较高。如果真的发生漏水的 话,则查询漏水点的时候也会比较困难。为此笔者认为,采用桥接类型的 JDBC 驱动程序只 是权宜之计。在适当的时候,数据库开发人员还是需要调整原先的开发架构,全部都转到 JDBC 驱动程序上来。桥接程序只是为数据库开发人员争取一定的时间。虽然这个转型过程 中的阵痛是比较痛的,但确是不可避免的。长痛不如短痛,笔者建议数据库开发人员还是及 早进行过渡为好。并在可能的情况下,把以前的开发架构也进行调整,以采用真正意义上的 JDBC 驱动程序。
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

li_user

贡献于2013-06-22

下载需要 2 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf