JDBC与ODBC的区别与应用.docx_第1页
JDBC与ODBC的区别与应用.docx_第2页
JDBC与ODBC的区别与应用.docx_第3页
JDBC与ODBC的区别与应用.docx_第4页
JDBC与ODBC的区别与应用.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JDBC和ODBC班鹏新 李龙返回-异构数据库系统是由多个异构的成员数据库系统组成的数据库系统,异构性体现为各个成员数据库之间在硬件平台、操作系统或数据库管理系统等方面的不同。-Internet上大量信息必须通过数据库系统才能有效管理。由于历史等原因,Internet上的数据库系统不少是异构的。为了在Internet环境下,基于异种系统平台实现对异构数据库的查询和联合使用,必须提供一个独立于特定的数据库管理系统的统一编程界面。-目前许多数据库系统均支持SQL,对于由SQL数据库组成的异构数据库系统,JDBC和ODBC为访问其异构成员提供了统一的方式,也为各异构成员之间的协作和多个成员之上的操作打下了基础。本文简单介绍了JDBC和ODBC对各个异构的数据库进行统一访问和协作的原理及其应用。ODBC-ODBC(Open DataBase Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和 ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语言。 ODBC总体结构有四个组件:- 应用程序执行处理并调用ODBC API函数,以提交 SQL语句并检索结果。- 驱动程序管理器(Driver Manager)根据应用程序需要加载/卸载驱动程序,处理ODBC函数调用,或把它们传送到驱动程序。- 驱动程序处理ODBC函数调用,提交SQL请求到一个指定的数据源,并把结果返回到应用程序。如果有必要,驱动程序修改一个应用程序请求,以使请求与相关的DBMS支持的语法一致。- 数据源包括用户要访问的数据及其相关的操作系统、DBMS及用于访问DBMS的网络平台。-ODBC驱动程序的使用把应用程序从具体的数据库调用中隔离开来,驱动程序管理器针对特定数据库的各个驱动程序进行集中管理,并向应用程序提供统一的标准接口,这就为ODBC的开放性奠定了基础。-数据库独立性-ODBC是为最大的互用性而设计的,要求一个应用程序有用相同的源代码(不用重新编译或重新链接)访问不同的数据库管理系统(DBMS)的能力。-ODBC定义了一个标准的调用层接口(CLI)。这包含 X/Open和ISO/IEC的CLI规范中的所有函数,并提供应用程序普遍需要的附加函数。每个支持ODBC的DBMS需要不同的库或驱动程序,驱动程序实现ODBC API中的函数。当需要改变驱动程序时,应用程序不需要重新编译或者重新链接,只是动态加载新的驱动程序,并调用其中的函数即可。如果要同时访问多个DBMS系统,应用程序可加载多个驱动程序。如何支持驱动程序取决于操作系统,例如,在Windows操作系统上,驱动程序是动态链接库(DLL)。-使用相同源代码的应用程序访问不同的DBMS,体现了 ODBC的数据库独立性。-对数据库特殊功能的支持-各个DBMS参照的标准、提供的功能不尽相同,应用程序如何以统一的接口使用各个DBMS特有的功能呢?-一方面,ODBC为所有DBMS功能都定义了公共接口。这些DBMS功能比多数DBMS支持的更多,但只要求驱动程序实现这些功能的一个子集。另一方面,ODBC定义了API和SQL语法一致层,它规定驱动程序应支持的基本功能。 ODBC还提供两个函数(SQLGetInfo和SQLGetFunctions)返回关于驱动程序和DBMS能力的一般信息及驱动程序支持的函数列表。因此,应用程序可以检查DBMS支持的特殊功能。-这样,编写应用程序时,就可以检查并自动使用各个驱动程序对应的DBMS所支持的特殊功能。这样做的优点是当增加DBMS支持的功能时,应用程序不需要改变,只需安装更新的驱动程序,应用程序便可以自动发现并使用这些功能。-互操作能力-通过使用多个驱动程序可以同时访问多个DBMS系统。 ODBC提供的Driver Manager实现所有的ODBC函数,多数是传递调用给驱动程序中的ODBC 函数,并静态链接应用程序,或在应用程序运行时加载它。这样,应用程序在Driver Manager 中按名调用驱动ODBC函数,而不是通过每个驱动程序中的指针。当应用程序需要通过特定的驱动程序时,它首先需要一个标识驱动程序的连接句柄。Driver Manager加载驱动程序,并存储每个驱动程序中的函数地址。要使驱动程序调用一个ODBC函数,可在应用程序调用 Driver Manager中的函数,并为驱动程序传送连接句柄,然后Driver Manager使用以前存储的地址来调用函数。-ODBC可以同时连接到多个DBMS,解决了同时访问多个DBMS的问题,提供了异构成员数据库之间互操作的能力。JDBC-JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java 语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。 JDBC API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。它允许Java程序员发送SQL指令并处理结果。通过驱动程序管理器,JDBC API可利用不同的驱动程序连接不同的数据库系统。-JDBC与ODBC都是基于X/Open的SQL调用级接口, JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL CLI实现上也沿袭了ODBC,这使得JDBC容易被接受。JDBC的总体结构类似于ODBC,也有四个组件:应用程序、驱动程序管理器、驱动程序和数据源。-JDBC保持了ODBC的基本特性,也独立于特定数据库。使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS。连接不同的DBMS时,各个DBMS之间仅通过不同的URL进行标识。JDBC的 DatabaseMetaData接口提供了一系列方法,可以检查DBMS对特定特性的支持,并相应确定有什么特性,从而能对特定数据库的特性予以支持。与ODBC一样,JDBC也支持在应用程序中同时建立多个数据库连接,采用JDBC可以很容易地用SQL语句同时访问多个异构的数据库,为异构的数据库之间的互操作奠定基础。-但是,JDBC除了具有ODBC的上述特点外,更具有对硬件平台、操作系统异构性的支持。这主要是因为ODBC使用的是C语言,而JDBC使用的是Java语言。Java语言具有与平台无关、移植性强、安全性高、稳定性好、分布式、面向对象等众多优点,而JDBC确保了“100纯Java”的解决方案,利用Java的平台无关性, JDBC应用程序可以自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。-此外,JDBC驱动程序管理器是内置的,驱动程序本身也可通过Web浏览器自动下载,无须安装、配置;而ODBC驱动程序管理器和ODBC驱动程序必须在每台客户机上分别安装、配置。JDBC和ODBC在Internet上的应用-JDBC和ODBC由于具有数据库独立性甚至平台无关性,因而对Internet上异构数据库的访问提供了很好的支持。-在Internet上访问数据库通常采用三层模式。以JDBC为例,在三层模式中客户端的Java Applet主要作为用户界面,它不直接与数据库交换信息,而是通过自定义的应用层网络协议与应用服务器交互,应用服务器通过JDBC与数据库服务器交换信息,并实现应用逻辑。DM3的JDBC和ODBC驱动程序支持目前流行的ASP和JSP技术,可以分别借助ODBC和JDBC同时访问Internet上多个异构的数据库。-ASP是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP使用VBScript之类的脚本语言,它在HTML代码中嵌入某种程序代码,由HTML代码负责描述信息的显示样式,由嵌入的程序代码来描述处理逻辑。在ASP 下,VBScript代码被ASP引擎在Web服务器端解释执行,执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。这里,VBScript代码可以通过ODBC访问多个异构的数据库。-JSP是一种基于Java Servlet的Web开发技术,它和ASP 非常相似,但又有区别:在JSP下,嵌入HTML页面的程序代码是Java代码;页面中嵌入的程序代码被编译成Servlet(这种编译操作仅在对JSP页面的第一次请求时发生)并由Java 虚拟机执行。这里Java代码可以通过JDBC访问多个异构的数据库,其平台无关性特别好。当前,Internet上的数据库应用已越来越多,JDBC和ODBC必将在Internet上的异构数据库访问中发挥重要的作用。JDBC与ODBC的区别与应用2009-07-06 17:08 Victor IT专家网我要评论(0)字号:T|TJDBC与ODBC都可以实现类似的功能,但JDBC与ODBC的区别是他们的开发架构不同,其实现细节上也有所差异。AD:谈到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数据库驱动程序其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论