数据库访问接口.ppt
《数据库访问接口.ppt》由会员分享,可在线阅读,更多相关《数据库访问接口.ppt(113页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 数据库访问接口数据库访问接口第五章第五章 数据库访问接口数据库访问接口5.1 概述5.2 ODBC与DAO对象5.3 JDBC原理与应用5.4 OLE DB和ADO5.5 数据库中间件5.1 概述概述nDBMS是非常复杂的软件,编写程序通过某种数据库专用接口与其通信是非常复杂的工作,为此,产生了数据库的客户访问技术,即数据库访问技术数据库访问技术。n开放的数据库访问接口为数据库应用程序开发人员访问与不同的、异构的数据库提供了统一的访问方式,采用这种数据库接口可以通过编写一段代码实现对多种类型数据库的复杂操作。实现了开放数据库的互联,并大大减小了编程的工作量和开发时间。n目前流行的
2、开放数据库访问接口有:ODBCJDBCOLE DB数据库网关(SQL网关)。(1)ODBCnODBC是Microsoft公司推出的开放数据库接口标准。ODBC为应用程序和驱动模块提供了一个定义良好的、不依赖于数据库的应用程序接口(API)。并且保持了与SQL标准的一致性。n使用API时,ODBC通过一个驱动管理器来判定应用程序要连接的数据库的类型,并载入(或卸载)对应的ODBC驱动。这样,就实现了应用程序和数据库之间的相互独立,简化了从Windows操作系统(以及其他一些操作系统)到数据库的访问。n目前,越来越多的第三方厂商在设计应用开发集成环境时,积极采用ODBC技术,使应用开发工具可通过O
3、DBC实现对异构数据库的快捷和方便的访问。(2)JDBCnJDBC(Java Database Connectivity)是JavaSoft提供的第一个支持lava语言的数据库APIn它支持基本SQL功能,在不同的数据库功能模块的层次上为Java开发人员提供了一个支持Java开发或支持Java应用程序运行的环境访问各种数据库的统一的用户界面,同时还提供了多样化的数据连接方式。nJDBC主要由两层组成:JDBC应用程序接口(JDBC API)和JDBC驱动应用程序接口。JDBC API提供从应用程序到JDBC管理器的通讯,开发者通过API使用标准Java机制访问数据库。数据库供应商提供JDBC驱
4、动接口,也可以通过JDBC-ODBC连接桥使用传统的0DBC连接:(3)OLE DBn OLE DB定义了一个访问服务器的集合,通过这些服务器可以很容易地连接到任意数目的数据源。这样,开发者就可以把多种不同的数据源作为单一的虚拟数据库来管理。OLE DB允许使用标准的COM接口接口访问数据。n OLE DB为开发者提供访问关系数据库、文件、扩展表、电子邮件等数据的方法。通过COM接口,开发者可以使用OLE DB方便地集成面向对象的数据库和多维数据库。n核心思想核心思想是生成独立的OLE DB组件对象,用以调度数据提供者的各种附加特性和功能。这些独立的OLE DB组件叫做“服务提供者”,允许应用
5、程序使用它们实现不同数据联合(同构的或异构的)之间的互联。数据以单一的视图的形式存在,而不管它们的数据模型是关系型的、面向对象的,还是多维的。(4)数据库网关)数据库网关n数据库网关也叫SQL网关,是一种应用程序接口(API),通过使用同一接口提供对运行在多种平台上的不同数据库的访问。它们类似于实际的数据库中间件产品,为开发者提供访问任意数目数据库的接口。n数据库网关把SQL调用解释成为标准PAP(Format and Protocol)格式。PAP格式实现通用的客户机和服务器连接,也就是异构数据库和运行平台的通用连结。n数据库网关可以把API调用直接翻译成PAP,把请求传递到目标数据库并翻译
6、,以便目标数据库和平台做出响应。第五章第五章 数据库访问接口数据库访问接口5.1 概述5.2 ODBC与DAO对象5.3 JDBC原理与应用5.4 OLE DB和ADO5.5 数据库中间件5.2 ODBC与与DAO对象对象n5.2.1 ODBC和DAO概述n5.2.2 ODBC的使用n5.2.3 DAO的使用5.2.1 ODBC和和DAO概述概述(1)ODBC概述概述nODBC是80年代末90年代初出现的技术,它为编写关系数据库的客户软件提供了统一的接口。ODBC提供统一的API,可用于处理不同数据库的客户应用程序。n使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行
7、通信。由于ODBC为关系数据库提供了统一的接口,现在已经被广泛应用,并逐渐成为关系数据库接口的标准。n它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用利用SQL来完成其大部来完成其大部分任务。分任务。ODBC本身也提供了对本身也提供了对SQL语言的支持,用户可语言的支持,用户可以直接将以直接将SQL语句送给语句送给ODBC。nODBC的最大优点是能以统一的方式处理所有的关系数据的最大优点是能以统一的方式处理所有的关系数据库。库。n但是,ODBC仅限于关系数据库仅限于关系数据库,由于ODBC的关系型特性,很难使用ODBC与非关系数据源进行通信,例如对象数
8、据库、网络目录服务、电子邮件存储等。(2)DAO概述概述nDAO(Database Access Object,数据访问对象)属于数据访数据访问客户端问客户端。是第一个面向对象的数据库访问接口。nDAO是Microsoft一种用来访问Jet引擎的方法,主要适用于单系统应用程序或在小范围本地分布中实现对桌面数据库(如Access、FoxPro、dBase等)的访问。n使用DA0的程序编码非常简单。它提供了完成关系数据库系统管理所需的全部操作的属性和方法:包括创建数据库,定义表、字段和索引,以及建立表间的关系,定位和查询数据库等工具。nJet(Joint Engine Technology,数据连
9、接引擎技术)是,数据连接引擎技术)是一种基于工作站,通过一种基于工作站,通过DA0访问数据库的机制。访问数据库的机制。nJet机制有自己的查询和结果集处理功能,并可对同构或异构数据源作查询处理。nJet技术目前已经达到了4.0版本,它是DA0,Access,VB等Windows应用进行数据库访问的基础。引擎本身的数据库格式为MDB,也支持对目前流行的绝大多数数据库格式的访问,当然MDB是数据库引擎中效率最高的数据库。(3)ODBC与与DA0的区别的区别nODBC和和DA0的区别在于它们访问数据库的机制不同。的区别在于它们访问数据库的机制不同。0DBC的工作依赖于数据库制造商提供的驱动程序,使用
10、ODBC API的时候,Windous的ODBC管理程序把数据库访问的请求传递给正确的驱动程序,驱动程序再使用SQL语句指示DBMS完成数据库访问工作。而DA0则可以绕开了中间环节,直接使用Microsoft提供的数据库连接性引擎技术(Jet)对数据库访问对象集进行工作,速度比0DBC快。nODBC是一种通用数据访问模型,而是一种通用数据访问模型,而DAO更多的是作为一更多的是作为一种数据访问客户端。种数据访问客户端。n一般来说DA0是本机Access数据库数据源首选的访问接口,但在客户/服务器体系结构上不如ODBC功能强大。5.2.2 ODBC的使用的使用1.ODBC的组成和结构2.ODBC
11、的基本工作流程3.使用ODBC MFC类4.ODBC数据源的管理1.ODBC的组成和结构的组成和结构n一个完整的一个完整的ODBC由四个部分组成:应用程序接由四个部分组成:应用程序接口、驱动程序管理器、数据库驱动程序和数据源。口、驱动程序管理器、数据库驱动程序和数据源。ODBC组件图组件图(1)应用程序接口)应用程序接口n负责处理并调用负责处理并调用ODBC函数、发送对数据库的函数、发送对数据库的SQL请求及取得结果。请求及取得结果。它并不直接与数据库打交道,因此,屏蔽了不同ODBC数据库驱动器之间函数调用的差异,屏蔽了底层数据库系统的不同。为用户提供统一的SQL编程接口和调用级界面,方便访问
12、来自多种DBMS的数据。(2)驱动程序管理器)驱动程序管理器n驱动程序管理器是一个带有输入程序的动态链接库(DLL),主要目主要目的是为应用程序装载数据库驱动程序处理的是为应用程序装载数据库驱动程序处理0DBC调用的初始化调用,调用的初始化调用,提供提供0DBC调用的参数有效性和序列有效性。调用的参数有效性和序列有效性。(3)数据库驱动程序)数据库驱动程序n数据库驱动程序是一个完成ODBC函数调用并与数据之间相互影响的DLL。如,当应用程序调用SQLBrowseConnect(),SQLConnect()或SQLDriverConnect()函数时,驱动程序管理器装入驱动程序。如果需要,数据库
13、驱动程序将会修改应用程序的请求,使得请求符合相关的DBMS所支持的文法。n所以,所以,ODBC驱动管理器的目的是加载数据库驱动器,便于驱动管理器的目的是加载数据库驱动器,便于ODBC函函数调用。数调用。(4)数据源)数据源n数据源由用户想要存取的数据以及与它相关的操作系统、DBMS和用于访问DBMS的网络平台组成。n数据源负责为应用程序存储和管理数据。数据源负责为应用程序存储和管理数据。它包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。nODBC实际上是一种相当底层的访问技术,因此它可以从实际上是一种相当底层的访问技术,因此它可以从底层设置和控制数据库,完成一些高级数据库技术无
14、法完底层设置和控制数据库,完成一些高级数据库技术无法完成的功能。成的功能。2.ODBC的基本工作流程的基本工作流程n当应用程序要访问一个数据库时:当应用程序要访问一个数据库时:首先必须注册一个数据源,ODBC管理器根据数据源提供的信息建立起ODBC与具体数据库的联系。n这样,应用程序只需要将数据源名提供给ODBC,就能建立起与相应数据库的连接。ODBC API不能直接访问数据库。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序。而驱动程序在执行完相应的操作之后,将结果通过驱动程序管理器返回给应用程序。在访问ODBC数据源时,需要ODBC驱动程序的支持。n一个一个ODBC
15、应用的建立应涵盖以下主要内容应用的建立应涵盖以下主要内容:建立需要操作数据库的应用程序,该程序通过调用ODBC函数提交SQL语句提供运行环境,该环境应包含数据库驱动程序,它负责处理ODBC函数调用,向数据源提交SQL请求,向应用程序返回结果,必要时将SQL语法翻译成符合DBMS语法规定的格式具有由用户数据库、DBMS等构成的可供应用程序访问的数据源 n具体来说,通过具体来说,通过ODBC访问数据库的基本步骤如下:访问数据库的基本步骤如下:创立并配置数据源;建立一个与数据源的对话连接;向数据源发出SQL请求;定义一个缓冲区和数据格式用于存储访问结果;提取结果;处理各种错误;向用户报告结果;关闭与
16、数据源的连接 nMicrosoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQL Server,Access,Paradox,dBase,FoxPro,Excel,Oracle 以及Microsoft Text。nODBC API是一个内容丰富的数据库编程接口,包括60多个函数、SQL数据类型以及常量的声明。ODBC API 独立于DBMS和操作系统的,而且它与编程语言无关。n不过直接使用不过直接使用ODBC API比较麻烦,所以微软后来又发展比较麻烦,所以微软后来又发展出来出来DAO、更容易开发程序。、更容易开发程序。3.
17、使用使用ODBC MFC类类nODBC为关系数据库提供了统一的接口,但是ODBC API十分复杂。在Visual C+中,MFC(Microsoft Foundation Classe微软基础类库)提供了一些类,对ODBC API进行封装,为ODBC编程提供了一个面向对象的方法,ODBC编程的复杂度大大降低。nMFC ODBC类在使用上比ODBC API容易,但是损失了ODBC API对低层的灵活控制,因此,MFC ODBC类属于高级数据库接口。n同ODBC API编程类似,MFC的ODBC编程也要先建立同ODBC数据源的连接,这个过程由一个CDatabase对象的Open函数实现。然后CDa
18、tabase对象的指针将被传递到CRecordSet对象的构造函数里,使CRecordSet对象与当前建立起来的数据源连接结合起来。n完成数据源连接之后,大量的数据库编程操作将集中在记录集的操作上。CRecordSet类的丰富的成员函数可以让开发人员轻松地完成基本的数据库应用程序开发任务。n当然,完成了所有的操作之后,在应用程序退出运行状态的时候,需要将所有的记录集关闭,并关闭所有同数据源的连接。nMFC对ODBC的封装主要是开发了CDatabase类和CRecordSet类。使用CDatabase:OpenEx通过驱动程序建立一个数据源的连接使用CDatabase:Close关闭与数据源的连
19、接使用CRecordSet:Open()和Requery()成员函数可以实现记录查询 CDatabase类的成员类的成员CRecordset的类成员的类成员4.ODBC数据源的管理数据源的管理n在在0DBC中,应用程序不能直接存取数据库,它必须通过管理器和数中,应用程序不能直接存取数据库,它必须通过管理器和数据库交换信息。据库交换信息。0DBC管理器负责安装驱动程序,将应用程序的SQL语句及其他信息传遗给驱动程序,并帮助程序员跟踪0DBC的函数调用,而驱动程序则负责将运行结果送回应用程序。数据源负责将运行结果送回应用程序。数据源在使用之前必须进行创建和配置。完成这些步骤后,应用程序就能够通过数
20、据源直接操纵数据库。n用户可通过如下两种方式创建或配置数据源:用户可通过如下两种方式创建或配置数据源:系统函数调用系统函数调用ODBC数据源管理程序数据源管理程序n下面首先介绍下面首先介绍0DBC管理器中各个页面的用途:管理器中各个页面的用途:用户用户DSN。0DBC用户数据源存储了如何与指定数据库提供者连接的信息,用户数据源只对当前用户可见,且只能用于当前机器。这里的当前机器是指这个配置只对当前的机器有效,而不是指只能配置本机上的数据库。它可以配置局域网中另一台机器上的数据库。系统系统DSN。0DBC系统数据源存储了如何指定数据库提供者连接的信息。系统数据源对当前机器上的所有用户都是可见的,
21、包括NT服务。也就是说在这里配置的数据源,只要是这台机器的用户都可以访问。文件文件DSN。0DBC文件数据源允许用户连接数据提供者。文件DSN可以由安装了相同驱动程序的用户共享。这是介于用户DSN和系统DSN之间的一种共享情况驱动程序驱动程序。这页列出了本机上所有安装的数据库驱动程序,其中列举了每个驱动程序的名称、版本提供商公司、驱动程序文件名,以及安装日期。跟踪跟踪。0DBC跟踪允许创建调用ODBC的日志,提供给技术人员查看。页面中可设定日志的路径和文件名。技术人员可通过这里面的信息看到本机上所有的数据库访问的时间、用户、出错信息等情况;也可以通过这个辅助调试应用程序启动Visual Stu
22、dio的分析器来进行ODBC的跟踪。连接池连接池。连接池允许应用程序重用原来打开的连接。这样可以节省连接到服务器的往返过程。关于关于。列出所有的ODBC的核心文件。配置一个配置一个Access数据源的过程如下:数据源的过程如下:n在Windows系统下进入控制面板,打开ODBC数据源,若是Windows 2000平台,则打开管理程序下的数据源ODBC,屏幕上将出现如图所示的“ODBC数据源管理器”对话框n选择所使用的数据库驱动程序,如选择Microsoft Access Driver(*.mdb),n单击“完成”按钮,出现如图所示的对话框n选择“系统DSN”标签,即选择“系统数据源”。要使系统
23、上的所有应用程序都可以使用它,必须选用系统DSN,这是建立这是建立Web站点的需要站点的需要。n单击“添加”按钮,进入“创建新数据源”对话框,如图所示n在“数据源名”输入框中键入数据源名,单击“选择”按钮为该数据源指定一个已创建好的Access数据库(*.mdb),该数据库应该是在Web应用程序中即将访问的数据库。n单击“确定”按钮,回到“创建新数据源”对话框。n单击“确定”按钮直到关闭ODBC数据管理器,n此时完成一个数据源的建立过程。n若要修改该数据源的配置,可在“ODBC数据源管理器”对话框中选定要更改的数据源,再单击“配置”按钮。nODBC并不完美,他虽然统一了对多种常用并不完美,他虽
24、然统一了对多种常用DBMS的访问,的访问,但是这个但是这个“访问访问”的过程是非常困难的,他仍然存在大量的过程是非常困难的,他仍然存在大量的低级调用,程序员必须将大量的精力放在底层的数据通的低级调用,程序员必须将大量的精力放在底层的数据通信中,而不能专注于所要处理的数据。信中,而不能专注于所要处理的数据。n为了改善这种极其不友好的接口,使得在程序开发中,数为了改善这种极其不友好的接口,使得在程序开发中,数据库访问的工作更加容易,微软提出里一个解决方案:据库访问的工作更加容易,微软提出里一个解决方案:DAO5.2.3 DAO的使用的使用nDAO是Microsoft的一种用来访问Jet引擎的方法。
25、主要适用于单系统应用程序或在小范围本地分布中实现对桌面数据库(如Access、FoxPro、dBase等)的访问。nMicrosoft Jet数据库引擎是一种数据管理组件,许多数据库工具都是基于它实现的,例如Microsoft Access,Microsoft Visual Basic以及一些Microsoft桌面数据库驱动程序。nDAO结构图 nDAO是完全面向对象的,对开发人员来说,只需了解DAO的使用,而由数据库引擎把DAO上的操作转换为对具体的数据库文件的操作。nDAO对象模型是一个分层的树形结构。该结构由对象和集合构成。其中最重要,使用最频繁的是RecordSet对象。DAO对象层次
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 访问 接口
限制150内