欢迎光临
我们一直在努力

JDBC和ODBC (转)-JSP教程,Java基础

建站超值云服务器,限时71元/月

异构数据库系统是由多个异构的成员数据库系统组成的数据库系统,异构性体现为各个成员数据库之间在硬件平台、操作系统或数据库管理系统等方面的不同。

—-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上的异构数据库访问中发挥重要的作用。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » JDBC和ODBC (转)-JSP教程,Java基础
分享到: 更多 (0)