




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库访问接口第五章 数据库访问接口数据库访问接口第五章第五章 数据库访问接口数据库访问接口5.1 概述5.2 ODBC与DAO对象5.3 JDBC原理与应用5.4 OLE DB和ADO5.5 数据库中间件数据库访问接口5.1 概述概述nDBMS是非常复杂的软件,编写程序通过某种数据库专用接口与其通信是非常复杂的工作,为此,产生了数据库的客户访问技术,即数据库访问技术数据库访问技术。n开放的数据库访问接口为数据库应用程序开发人员访问与不同的、异构的数据库提供了统一的访问方式,采用这种数据库接口可以通过编写一段代码实现对多种类型数据库的复杂操作。实现了开放数据库的互联,并大大减小了编程的工作量和
2、开发时间。数据库访问接口n目前流行的开放数据库访问接口有:ODBCJDBCOLE DB数据库网关(SQL网关)。数据库访问接口(1)ODBCnODBC是Microsoft公司推出的开放数据库接口标准。ODBC为应用程序和驱动模块提供了一个定义良好的、不依赖于数据库的应用程序接口(API)。并且保持了与SQL标准的一致性。n使用API时,ODBC通过一个驱动管理器来判定应用程序要连接的数据库的类型,并载入(或卸载)对应的ODBC驱动。这样,就实现了应用程序和数据库之间的相互独立,简化了从Windows操作系统(以及其他一些操作系统)到数据库的访问。n目前,越来越多的第三方厂商在设计应用开发集成环
3、境时,积极采用ODBC技术,使应用开发工具可通过ODBC实现对异构数据库的快捷和方便的访问。数据库访问接口(2)JDBCnJDBC(Java Database Connectivity)是JavaSoft提供的第一个支持lava语言的数据库APIn它支持基本SQL功能,在不同的数据库功能模块的层次上为Java开发人员提供了一个支持Java开发或支持Java应用程序运行的环境访问各种数据库的统一的用户界面,同时还提供了多样化的数据连接方式。nJDBC主要由两层组成:JDBC应用程序接口(JDBC API)和JDBC驱动应用程序接口。JDBC API提供从应用程序到JDBC管理器的通讯,开发者通过
4、API使用标准Java机制访问数据库。数据库供应商提供JDBC驱动接口,也可以通过JDBC-ODBC连接桥使用传统的0DBC连接:数据库访问接口(3)OLE DBn OLE DB定义了一个访问服务器的集合,通过这些服务器可以很容易地连接到任意数目的数据源。这样,开发者就可以把多种不同的数据源作为单一的虚拟数据库来管理。OLE DB允许使用标准的COM接口接口访问数据。n OLE DB为开发者提供访问关系数据库、文件、扩展表、电子邮件等数据的方法。通过COM接口,开发者可以使用OLE DB方便地集成面向对象的数据库和多维数据库。n核心思想核心思想是生成独立的OLE DB组件对象,用以调度数据提供
5、者的各种附加特性和功能。这些独立的OLE DB组件叫做“服务提供者”,允许应用程序使用它们实现不同数据联合(同构的或异构的)之间的互联。数据以单一的视图的形式存在,而不管它们的数据模型是关系型的、面向对象的,还是多维的。数据库访问接口(4)数据库网关)数据库网关n数据库网关也叫SQL网关,是一种应用程序接口(API),通过使用同一接口提供对运行在多种平台上的不同数据库的访问。它们类似于实际的数据库中间件产品,为开发者提供访问任意数目数据库的接口。n数据库网关把SQL调用解释成为标准PAP(Format and Protocol)格式。PAP格式实现通用的客户机和服务器连接,也就是异构数据库和运
6、行平台的通用连结。n数据库网关可以把API调用直接翻译成PAP,把请求传递到目标数据库并翻译,以便目标数据库和平台做出响应。数据库访问接口第五章第五章 数据库访问接口数据库访问接口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年代初出现的技术,它为编写关系数据库的客户软件提供了统一的接口。ODB
7、C提供统一的API,可用于处理不同数据库的客户应用程序。n使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信。由于ODBC为关系数据库提供了统一的接口,现在已经被广泛应用,并逐渐成为关系数据库接口的标准。数据库访问接口n它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用利用SQL来完成其大部来完成其大部分任务。分任务。ODBC本身也提供了对本身也提供了对SQL语言的支持,用户可语言的支持,用户可以直接将以直接将SQL语句送给语句送给ODBC。nODBC的最大优点是能以统一的方式处理所有的关系数据的最大优点是能以统一的方式处理
8、所有的关系数据库。库。n但是,ODBC仅限于关系数据库仅限于关系数据库,由于ODBC的关系型特性,很难使用ODBC与非关系数据源进行通信,例如对象数据库、网络目录服务、电子邮件存储等。数据库访问接口(2)DAO概述概述nDAO(Database Access Object,数据访问对象)属于数据访数据访问客户端问客户端。是第一个面向对象的数据库访问接口。 nDAO是Microsoft一种用来访问Jet引擎的方法,主要适用于单系统应用程序或在小范围本地分布中实现对桌面数据库(如Access、FoxPro、dBase等)的访问。n使用DA0的程序编码非常简单。它提供了完成关系数据库系统管理所需的全
9、部操作的属性和方法:包括创建数据库,定义表、字段和索引,以及建立表间的关系,定位和查询数据库等工具。数据库访问接口nJet(Joint Engine Technology,数据连接引擎技术),数据连接引擎技术)是一种基于工作站,通过是一种基于工作站,通过DA0访问数据库的机制。访问数据库的机制。nJet机制有自己的查询和结果集处理功能,并可对同构或异构数据源作查询处理。nJet技术目前已经达到了4.0版本,它是DA0,Access,VB等Windows应用进行数据库访问的基础。引擎本身的数据库格式为MDB,也支持对目前流行的绝大多数数据库格式的访问,当然MDB是数据库引擎中效率最高的数据库。数
10、据库访问接口(3)ODBC与与DA0的区别的区别nODBC和和DA0的区别在于它们访问数据库的机制不同。的区别在于它们访问数据库的机制不同。0DBC的工作依赖于数据库制造商提供的驱动程序,使用ODBC API的时候,Windous的ODBC管理程序把数据库访问的请求传递给正确的驱动程序,驱动程序再使用SQL语句指示DBMS完成数据库访问工作。而DA0则可以绕开了中间环节,直接使用Microsoft提供的数据库连接性引擎技术(Jet)对数据库访问对象集进行工作,速度比0DBC快。nODBC是一种通用数据访问模型,而是一种通用数据访问模型,而DAO更多的是作为一更多的是作为一种数据访问客户端。种数
11、据访问客户端。n一般来说DA0是本机Access数据库数据源首选的访问接口,但在客户/服务器体系结构上不如ODBC功能强大。数据库访问接口5.2.2 ODBC的使用的使用1. ODBC的组成和结构2. ODBC的基本工作流程3. 使用ODBC MFC类4. ODBC数据源的管理数据库访问接口1. ODBC的组成和结构的组成和结构n一个完整的一个完整的ODBC由四个部分组成:应用程序接由四个部分组成:应用程序接口、驱动程序管理器、数据库驱动程序和数据源。口、驱动程序管理器、数据库驱动程序和数据源。数据库访问接口ODBC组件图组件图 数据库访问接口(1)应用程序接口)应用程序接口n负责处理并调用负
12、责处理并调用ODBC函数、发送对数据库的函数、发送对数据库的SQL请求及取得结果。请求及取得结果。它并不直接与数据库打交道,因此,屏蔽了不同ODBC数据库驱动器之间函数调用的差异,屏蔽了底层数据库系统的不同。为用户提供统一的SQL编程接口和调用级界面,方便访问来自多种DBMS的数据。(2)驱动程序管理器)驱动程序管理器n驱动程序管理器是一个带有输入程序的动态链接库(DLL),主要目主要目的是为应用程序装载数据库驱动程序处理的是为应用程序装载数据库驱动程序处理0DBC调用的初始化调用,调用的初始化调用,提供提供0DBC调用的参数有效性和序列有效性。调用的参数有效性和序列有效性。数据库访问接口(3
13、)数据库驱动程序)数据库驱动程序n数据库驱动程序是一个完成ODBC函数调用并与数据之间相互影响的DLL。如,当应用程序调用SQLBrowseConnect(),SQLConnect()或SQLDriverConnect()函数时,驱动程序管理器装入驱动程序。如果需要,数据库驱动程序将会修改应用程序的请求,使得请求符合相关的DBMS所支持的文法。n所以,所以,ODBC驱动管理器的目的是加载数据库驱动器,便于驱动管理器的目的是加载数据库驱动器,便于ODBC函函数调用。数调用。(4)数据源)数据源n数据源由用户想要存取的数据以及与它相关的操作系统、DBMS和用于访问DBMS的网络平台组成。n数据源负
14、责为应用程序存储和管理数据。数据源负责为应用程序存储和管理数据。它包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。数据库访问接口nODBC实际上是一种相当底层的访问技术,因此它可以从实际上是一种相当底层的访问技术,因此它可以从底层设置和控制数据库,完成一些高级数据库技术无法完底层设置和控制数据库,完成一些高级数据库技术无法完成的功能。成的功能。数据库访问接口2. ODBC的基本工作流程的基本工作流程数据库访问接口n当应用程序要访问一个数据库时:当应用程序要访问一个数据库时:首先必须注册一个数据源,ODBC管理器根据数据源提供的信息建立起ODBC与具体数据库的联系。n这样,应用程
15、序只需要将数据源名提供给ODBC,就能建立起与相应数据库的连接。ODBC API不能直接访问数据库。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序。而驱动程序在执行完相应的操作之后,将结果通过驱动程序管理器返回给应用程序。在访问ODBC数据源时,需要ODBC驱动程序的支持。数据库访问接口n一个一个ODBC应用的建立应涵盖以下主要内容应用的建立应涵盖以下主要内容:建立需要操作数据库的应用程序,该程序通过调用ODBC函数提交SQL语句提供运行环境,该环境应包含数据库驱动程序,它负责处理ODBC函数调用,向数据源提交SQL请求,向应用程序返回结果,必要时将SQL语法翻译成符
16、合DBMS语法规定的格式具有由用户数据库、DBMS等构成的可供应用程序访问的数据源 数据库访问接口n具体来说,通过具体来说,通过ODBC访问数据库的基本步骤如下:访问数据库的基本步骤如下:创立并配置数据源;建立一个与数据源的对话连接;向数据源发出SQL请求;定义一个缓冲区和数据格式用于存储访问结果;提取结果;处理各种错误;向用户报告结果;关闭与数据源的连接 数据库访问接口nMicrosoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQL Server,Access,Paradox,dBase,FoxPro,Excel,Ora
17、cle 以及Microsoft Text。nODBC API是一个内容丰富的数据库编程接口,包括60多个函数、SQL数据类型以及常量的声明。ODBC API 独立于DBMS和操作系统的,而且它与编程语言无关。n不过直接使用不过直接使用ODBC API比较麻烦,所以微软后来又发展比较麻烦,所以微软后来又发展出来出来DAO、更容易开发程序。、更容易开发程序。数据库访问接口3. 使用使用ODBC MFC类类nODBC为关系数据库提供了统一的接口,但是ODBC API十分复杂。在Visual C+中,MFC(Microsoft Foundation Classe微软基础类库)提供了一些类, 对ODBC
18、 API进行封装,为ODBC编程提供了一个面向对象的方法,ODBC编程的复杂度大大降低。nMFC ODBC类在使用上比ODBC API容易,但是损失了ODBC API对低层的灵活控制,因此,MFC ODBC类属于高级数据库接口。数据库访问接口n同ODBC API编程类似,MFC的ODBC编程也要先建立同ODBC数据源的连接,这个过程由一个CDatabase对象的Open函数实现。然后CDatabase对象的指针将被传递到CRecordSet对象的构造函数里,使CRecordSet对象与当前建立起来的数据源连接结合起来。n完成数据源连接之后,大量的数据库编程操作将集中在记录集的操作上。CReco
19、rdSet类的丰富的成员函数可以让开发人员轻松地完成基本的数据库应用程序开发任务。n当然,完成了所有的操作之后,在应用程序退出运行状态的时候,需要将所有的记录集关闭,并关闭所有同数据源的连接。数据库访问接口nMFC对ODBC的封装主要是开发了CDatabase类和CRecordSet类。使用CDatabase:OpenEx通过驱动程序建立一个数据源的连接使用CDatabase:Close关闭与数据源的连接使用CRecordSet:Open()和Requery()成员函数可以实现记录查询 数据库访问接口CDatabase类的成员类的成员数据库访问接口CRecordset的类成员的类成员数据库访问
20、接口4. ODBC数据源的管理数据源的管理n在在0DBC中,应用程序不能直接存取数据库,它必须通过管理器和数中,应用程序不能直接存取数据库,它必须通过管理器和数据库交换信息。据库交换信息。0DBC管理器负责安装驱动程序,将应用程序的SQL语句及其他信息传遗给驱动程序,并帮助程序员跟踪0DBC的函数调用,而驱动程序则负责将运行结果送回应用程序。数据源负责将运行结果送回应用程序。数据源在使用之前必须进行创建和配置。完成这些步骤后,应用程序就能够通过数据源直接操纵数据库。n用户可通过如下两种方式创建或配置数据源:用户可通过如下两种方式创建或配置数据源:系统函数调用系统函数调用ODBC数据源管理程序数
21、据源管理程序数据库访问接口n下面首先介绍下面首先介绍0DBC管理器中各个页面的用途:管理器中各个页面的用途:用户用户DSN。0DBC用户数据源存储了如何与指定数据库提供者连接的信息,用户数据源只对当前用户可见,且只能用于当前机器。这里的当前机器是指这个配置只对当前的机器有效,而不是指只能配置本机上的数据库。它可以配置局域网中另一台机器上的数据库。系统系统DSN。0DBC系统数据源存储了如何指定数据库提供者连接的信息。系统数据源对当前机器上的所有用户都是可见的,包括NT服务。也就是说在这里配置的数据源,只要是这台机器的用户都可以访问。文件文件DSN。0DBC文件数据源允许用户连接数据提供者。文件
22、DSN可以由安装了相同驱动程序的用户共享。这是介于用户DSN和系统DSN之间的一种共享情况数据库访问接口驱动程序驱动程序。这页列出了本机上所有安装的数据库驱动程序,其中列举了每个驱动程序的名称、版本提供商公司、驱动程序文件名,以及安装日期。跟踪跟踪。0DBC跟踪允许创建调用ODBC的日志,提供给技术人员查看。页面中可设定日志的路径和文件名。技术人员可通过这里面的信息看到本机上所有的数据库访问的时间、用户、出错信息等情况;也可以通过这个辅助调试应用程序启动Visual Studio的分析器来进行ODBC的跟踪。连接池连接池。连接池允许应用程序重用原来打开的连接。这样可以节省连接到服务器的往返过程
23、。关于关于。列出所有的ODBC的核心文件。数据库访问接口配置一个配置一个Access数据源的过程如下:数据源的过程如下:n在Windows系统下进入控制面板,打开ODBC数据源,若是Windows 2000平台,则打开管理程序下的数据源ODBC,屏幕上将出现如图所示的“ODBC数据源管理器”对话框数据库访问接口n选择所使用的数据库驱动程序,如选择Microsoft Access Driver (*.mdb),n单击“完成”按钮,出现如图所示的对话框数据库访问接口n选择“系统DSN”标签,即选择“系统数据源”。要使系统上的所有应用程序都可以使用它,必须选用系统DSN,这是建立这是建立Web站点的
24、需要站点的需要。n单击“添加”按钮,进入“创建新数据源”对话框,如图所示数据库访问接口n在“数据源名”输入框中键入数据源名,单击“选择”按钮为该数据源指定一个已创建好的Access数据库(*.mdb),该数据库应该是在Web应用程序中即将访问的数据库。n单击“确定”按钮,回到“创建新数据源”对话框。n单击“确定”按钮直到关闭ODBC数据管理器,n此时完成一个数据源的建立过程。n若要修改该数据源的配置,可在“ODBC数据源管理器”对话框中选定要更改的数据源,再单击“配置”按钮。 数据库访问接口nODBC并不完美,他虽然统一了对多种常用并不完美,他虽然统一了对多种常用DBMS的访问,的访问,但是这
25、个但是这个“访问访问”的过程是非常困难的,他仍然存在大量的过程是非常困难的,他仍然存在大量的低级调用,程序员必须将大量的精力放在底层的数据通的低级调用,程序员必须将大量的精力放在底层的数据通信中,而不能专注于所要处理的数据。信中,而不能专注于所要处理的数据。n为了改善这种极其不友好的接口,使得在程序开发中,数为了改善这种极其不友好的接口,使得在程序开发中,数据库访问的工作更加容易,微软提出里一个解决方案:据库访问的工作更加容易,微软提出里一个解决方案:DAO数据库访问接口5.2.3 DAO的使用的使用nDAO是Microsoft的一种用来访问Jet引擎的方法。主要适用于单系统应用程序或在小范围
26、本地分布中实现对桌面数据库(如Access、FoxPro、dBase等)的访问。nMicrosoft Jet数据库引擎是一种数据管理组件,许多数据库工具都是基于它实现的,例如Microsoft Access,Microsoft Visual Basic以及一些Microsoft桌面数据库驱动程序。数据库访问接口nDAO结构图 数据库访问接口nDAO是完全面向对象的,对开发人员来说,只需了解DAO的使用,而由数据库引擎把DAO上的操作转换为对具体的数据库文件的操作。nDAO对象模型是一个分层的树形结构。该结构由对象和集合构成。其中最重要,使用最频繁的是RecordSet对象。数据库访问接口DAO
27、对象层次图对象层次图 数据库访问接口nVC+在4.0版本之后增加了DAO的封装,即MFC的DAO类,使得数据库开发人员可以通过Microsoft Jet数据库引擎访问数据库。MFC DAO类与DAO对象之间的对应关系 数据库访问接口MFC ODBC和和MFC DAO的区别:的区别:nMFC DAO类使用Microsoft Jet数据库引擎操作位于系统数据库和用户数据库中的数据,n它与基于ODBC的MFC数据库类截然不同,DAO通过Microsoft Jet访问数据,而MFC的ODBC类通过ODBC和ODBC驱动程序操作数据。n一般来说,在访问Microsoft Jet数据库引擎,基于DAO的M
28、FC类比基于ODBC的MFC类处理能力更强大。数据库访问接口第五章第五章 数据库访问接口数据库访问接口5.1 概述5.2 ODBC与DAO对象5.3 JDBC原理与应用5.4 OLE DB和ADO5.5 数据库中间件数据库访问接口5.3 JDBC原理与应用原理与应用5.3.1 JDBC概述5.3.2 JDBC的体系结构5.3.3 JDBC的接口5.3.4 JDBC访问数据库的模式5.3.5 JDBC访问数据库的方法数据库访问接口5.3.1 JDBC概述概述nJDBC技术是JavaSoft公司设计的Java语言的数据库访问API。ODBC主要是对数据库系统的C语言接口最初的Java语言并没有数据
29、库访问能力。JDBC是第一个支持Java语言的标准的数据库APIn其目的在于使Java程序与数据库服务器的连接更加方便。在功能方面JDBC与ODBC相同,它给程序员提供了统一的数据库访问接口。数据库访问接口n与与ODBC相似,相似,JDBC提供给程序员的编程接口是提供给程序员的编程接口是由两部分组成:由两部分组成:一是面向应用程序的编程接口JDBC API,它是为应用程序员提供的,可以进行数据库连接和调用SOL语句访问支持JDBC的数据库,并得到返回结果;二是供底层开发的驱动程序接口JDBC Driver API,它是各个数据库厂商提供的。n值得一提的是,JavaSoft提供了一种特殊的驱动程
30、序,JDBC-ODBC桥,它支持JDBC通过现有的ODBC来访问数据库系统。n目前,JDBC已经得到了许多厂商的支持,包括Borland, IBM、Oracle和Sybase等公司。当前流行的大多数数据系统都推出了自己的JDBC驱动程序。数据库访问接口5.3.2 JDBC的体系结构的体系结构nJDBC的总体结构类似于ODBC,也由四个部件组成:应用程序接口、驱动程序管理器、数据库驱动程序和数据源。数据库访问接口JDBC的数据库驱动程序有四类:的数据库驱动程序有四类:n JDBC-ODBC桥(桥(bridge)nJDBC-ODBC桥利用ODBC驱动程序提供JDBC访问。在服务器上必须可以安装OD
31、BC驱动程序。作为JdbcOdbc.class实现n本地本地API Java驱动程序驱动程序n这种类型的驱动程序把客户机API上的JDBC调用利用JNI(Java Native INterface)转换为本地数据库(如Oracle、Sybase、Informix、DB2或其它DBMS)的API调用。1.类型2通常比类型1的速度要快数据库访问接口n 网络协议网络协议Java驱动程序:驱动程序:n这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。n这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。n 数据库协议数据库协议J
32、ava驱动程序:驱动程序:n这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。n这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。n第第3类和第类和第4类驱动程序将成为类驱动程序将成为JDBC访问数据库的首选方法。第访问数据库的首选方法。第1类类和第和第2类驱动程序在直接的纯类驱动程序在直接的纯Java驱动程序还没有上市前会作为过驱动程序还没有上市前会作为过渡方案来使用。渡方案来使用。数据库访问接口5.3.3 JDBC的接口的接口nJDBC 的实现类在的实现类在java.sql包中,需要在程序中通过包中,需要在程序中通过import语
33、句引入。语句引入。JDBC的接口分为两个层次:的接口分为两个层次:面向程序开发人员的JDBC API底层的JDBC Driver APIJDBC Driver APIn每个数据库JDBC驱动必须提供一个响应的驱动类。它由java.sql.Driver派生。大部分JDBC驱动只需要完成这些JDBC API所定义的抽象类抽象类就可以了。n所有的JDBC驱动必须提供对java.sql.Connection、java.slq.Statement、java.sql.PreparedStatement和java.sql.ResultSet的实现。数据库访问接口JDBC API:n被描述为一组抽象的被描述为
34、一组抽象的Java接口,通过接口,通过JDBC API,应用程,应用程序可以对数据库进行打开连接,执行序可以对数据库进行打开连接,执行SQL语句并且处理结语句并且处理结果。果。nJDBC API中最重要的接口是:Java.sql.DriverManager:处理驱动程序的调入,并且对产生的新的数据库连接提供支持。Java.sql.Connection:代表对特定数据库的连接。Java.sql.Statement:代表一个特定的容器,来对一个特定的数据库执行SQL语句。其中java.sql.Statement又有两个子类nJava.sql.PreparedStatement:用于执行预编译的SQ
35、L语句nJava.sql.CallableStatement:用于执行对一个数据库内嵌过程的调用Java.sql.ResultSet:控制对一个特定语句的数据的存取。数据库访问接口JDBC类图类图数据库访问接口5.3.4 JDBC访问数据库的模式访问数据库的模式nJDBC既支持两层模型,也支持三层模型。Java Appletn最初的JDBC应用是Java Applet。它的实现方式是通过Web浏览器把应用下载到客户端运行,在客户端直接访问数据库在客户端直接访问数据库。n其工作过程是:当Web浏览器从服务器上下载了包含有Java Applet的HTML页面时,如其中的Java Applet调用了
36、JDBC,则浏览器运行的JavaApplet直接与指定的数据库建立连接,并向其提交SQL语句,Applet从数据库接受返回的结果并进行处理,将最后结果显示在浏览器上。n 在客户机上运行Java Applet通过JDBC技术可以绕过Web服务器直接和数据库服务器连接,并直接把带有结果的HTML页返回客户机浏览器。数据库访问接口Java Serletsn与Java Applet不同,Java Servlets是运行于是运行于Web服务器端的服务器端的程序程序,能够象CGI脚本一样扩展Web服务器功能。它在初始化时装入Web服务器的存储空间,并成为服务器的一个组成部分。n其工作过程是:当浏览器向服务
37、器发出请求时,服务器将该请求传递给一个Servlet,该Servlet通过JDBC向数据库发出SQL请求并构造响应结果,然后通过服务器将结果传递回浏览器。n使用Java Servlets虽然可以完全实现通过Web访问数据库。但是Servlet生成网页的方法是在Java类中嵌入HTML标签和表述代码。这就意味着改变表述代码需要修改和重新编译Servlets源文件。因为设计HTML页面的设计人员可能与编写Servlets代码的开发人员不是同一个人,更新基于Servlets的Web应用程序就成了一件非常棘手的事情。数据库访问接口 Java Server Page,即,即JSPnJSP是Java Se
38、rvlets的一个扩展,具有Servlets的所有优势。不同的是它将功能实现和网页设计的功能分开了。nJSP是Sun公司倡导的一种动态网页技术标准,是一种在服务器端编译执行的Web数据库系统应用程序编程语言,其脚本语言是Java,通过在HTML文件中加人Java程序片段和JSP标记构成JSP网页。nJSP技术可以让各公司采用各类Web服务器、应用服务器、浏览器和开发工具等快速创建Web网页。数据库访问接口5.3.5 JDBC访问数据库的方法访问数据库的方法DriverManagerDriverConnectionStatementResultSetnJDBC 类的使用数据库访问接口n使用JDB
39、C的第一步是安装驱动程序。大多数数据库都有JDBC驱动程序,常用的JDBC驱动程序如图所示。数据库访问接口n连接数据库前先要加载驱动程序连接数据库前先要加载驱动程序nimport java.sql.*nClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);nClass.forName(“jdbc.driver_class_name”);n常见的有:com.microsoft.jdbc.sqlserver.SQLServerDriverorg.gjt.mm.mysql.DriverOracle.jdbc.driver.OracleDriver数据库访问接口n
40、建立与数据库之间的连接,也就是创建一个建立与数据库之间的连接,也就是创建一个Connection的实例。的实例。nDriverManager类的类的getConnection()方法将建立数据库方法将建立数据库的连接:的连接:public static Connection getConnection(String url, String user, String password) throws SQLExceptionn在程序的最后,应该关闭在程序的最后,应该关闭Connection对象:对象:public void close() throws SQLExceptionn不同的驱动有不同
41、的不同的驱动有不同的URL写法写法,如如SQL Server下的下的URL:jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=xx数据库访问接口n使用使用Connection接口的方法接口的方法npublic void commit() throws SQLExceptionnpublic Statement createStatement() throws SQLException npublic boolean getAutoCommit() throws SQLException npublic CallableStatement
42、 prepareCall(String sql) throws SQLException数据库访问接口nStatement对象用于将SQL语句发送到数据库中。n存在3种Statement对象:StatementPreparedStatement(从Statement继承而来)CallableStatement(从PreparedStatement继承而来)数据库访问接口nStatement接口提供了两种执行接口提供了两种执行SQL语句的常用方语句的常用方法:法:npublic ResultSet executeQuery(String sql) throws SQLExceptionn用于产生
43、单个ResultSet的语句,例如SELECT语句。npublic int executeUpdate(String sql) throws SQLExceptionn用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,例如CREATE TABLE和DROP TABLE。该方法返回一个整数,指示受影响的行数。数据库访问接口nResultSet包含符合包含符合SQL语句执行结果所有行,并且它通过一套语句执行结果所有行,并且它通过一套get方方法提供了对这些行中数据的访问,法提供了对这些行中数据的访问,常用的常用的get方法有:方法有:nint getInt(int col
44、umnIndex),取得当前行中第columnIndex列的整数的值。nint getInt(String columnName),取得当前行中列名为columnName的整数的值。其他方法:其他方法:ngetDate(int columnIndex) getDate(String columnName)ngetString(int columnIndex) ,getString(String columnName)nResultSet维护指向其当前数据行的光标,让光标向下移动一行的方法是:public boolean next() throws SQLException数据库访问接口n利用利
45、用ResultSet对象在建立时,记录指针指向第一条记录对象在建立时,记录指针指向第一条记录之前,结合之前,结合ResultSet对象提供的对象提供的next方法,在方法,在while循环循环中移动记录指针,向下逐条地将数据库中的记录依次获取,中移动记录指针,向下逐条地将数据库中的记录依次获取,在移动到记录的最后一条,由在移动到记录的最后一条,由next方法返回值方法返回值false来结来结束循环。束循环。数据库访问接口n结果集类型有结果集类型有3种:种:nResultSet.TYPE_FORWORD_ONLY:指定ResultSet对象是不可滚动,这是默认值。nResultSet.TYPE_
46、SCOLL_INSENSITIVE:指定ResultSet对象是可滚动的,但是对数据库中修改不敏感。nResultSet.TYPE_SCOLL_SENSITIVE:指定ResultSet对象是可滚动的,而且对数据库的修改敏感。数据库访问接口总结总结:JDBC访问数据库基本方法访问数据库基本方法Class.forName(JDBCClass.forName(JDBC驱动程序驱动程序););Connection conn=DriverManager.getConnection(Connection conn=DriverManager.getConnection(相应相应JDBCJDBC驱动程序的
47、连接串驱动程序的连接串););Statement stmt=conn.createStatement();Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(DQLResultSet rs=stmt.executeQuery(DQL语句语句);/);/如果是如果是数据查询数据查询stmt.executeUpdate(DMLstmt.executeUpdate(DML语句语句);/);/如果是数据操作如果是数据操作数据库访问接口第五章第五章 数据库访问接口数据库访问接口5.1 概述5.2 ODBC与DAO对象5
48、.3 JDBC原理与应用5.4 OLE DB和ADO5.5 数据库中间件数据库访问接口5.4 OLE DB和和ADO5.4.1 概述5.4.2 OLE DB5.4.3 ADO数据库访问接口5.4.1 概述概述n随着网络技术和数据库技术的不断发展,需要将不同形式的数据进行集成。n传统的方法:将数据全移植到DBMS中处理。但是这种间接访问方式数据更新不及时,空间资源冗余,访问效率低下。n微软公司推出UDA( Universal Data Access,统一数据访问技术)较好的解决了这个问题。为关系型或非关系型数据源提供了统一的,独立于开发工具和开发语言的接口。数据库访问接口nUDA通过Micros
49、oft Data Access Components(MDAC)来实现,而MDAC则包括ADO、Open Database Connectivity(ODBC)与OLE DB。n其中,OLE DB被微软公司归类为系统级的接口,定义了一套COM接口,提供从关联数据库及文件系统访问数据的能力,设计用来给系统级的程序员使用。它虽然灵活、功能强大,但仍属于较低级的接口,并且对程序员的要求较高,需要较高水平的知识。nADO是在OLE DB之上的一个层面,被用来沟通这个低级接口与数据库,简化并实现OLE DB的强大功能,它是为应用程序员设计的。ODBC为了向后兼容也包含在MDAC中,但ODBC有被OLE
50、DB替代的趋势。数据库访问接口ADO在访问数据存储体时的层次关系图在访问数据存储体时的层次关系图VC+VBADOOLEDBDelphiODBCVisual J+ (Vj+)RDBMSRDBMSEmialDirectory Services数据库访问接口n ADO(Active Data Objects)是微软公司推出的一个功能强大的数据库应用编程接口,它的主要它的主要功能是用于应用程序与功能是用于应用程序与OLE DB兼容的数据源的兼容的数据源的连接。连接。n应用程序可以通过ADO实现对各种类型数据库的连接,对数据的查询、修改、更新等。n因而,通过ADO存取数据已经成为流行的选择。数据库访问接
51、口5.4.2 OLE DBnOLE DB:数据库链接和嵌入对象(Object Linking and Embedding DataBase)。是微软提出的基于COM思想且面向对象的一种技术标准,目的是提供一种统一的数据访问接口访问各种数据源,这里所说的“数据”除了标准的关系型数据库中的数据之外,还包括其他形式的数据。nOLE DB标准的核心内容就是要求对以上这些各种各样的数据存储(Data Store)都提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。数据库访问接口n与ODBC API一样,OLE DB 也属于低层的
52、数据库编程接口,OLE DB结合了ODBC对关系型数据库的操作功能,并进行了扩展,可以访问非关系型数据库源。nOLE DB对ODBC进行了两个方面的扩展:一是提供了一个数据库编程的OLE接口,即COM;二是提供了一个可用于关系型和非关系型数据源的接口。nOLE DB标准的具体实现是通过一组C+ API 函数, 就像ODBC 标准中的ODBC API 一样, 数据库访问接口n利用OLE DB进行软件开发应该包括两类软件:OLE DB客户程序(Consumer)和OLE DB供应程序(Provider) OLE DB客户程序是使用OLE DB接口的应用程序,n例如,采用C+编写的使用OLE DB连
53、接数据库服务器的所有应用程序都是OLE DB客户程序。OLE DB供应程序是实现OLE DB接口并实际与数据库服务器通信的DLL。n在功能上,OLE DB同ODBC驱动程序相同,不过OLE DB实现的是COM接口,而不是API接口。数据库访问接口5.4.3 ADOnADO(ActiveX Data Object,ActiveX数据对象)是微软于1996年冬推出的一种面向对象的、基于COM思想的数据库访问接口。n为了使流行的各种编程语言都可以编写符合OLE DB标准的应用程序,微软在OLE DB API之上,提供了一种面向对象、与语言无关的应用编程接口,这就是ActiveX Data Objec
54、ts,简称ADO。n实质上,ADO就是将OLE DB的面向C+的复杂接口封装起来,提供了便于操作的接口。还可以说ADO其实只是一个应用程序层次的界面,它用OLE DB来与数据库通信,ADO为OLEDB提供高层应用API函数。nADO是是ASP内置的服务器组件内置的服务器组件数据库访问接口 ADO同OLE DB、数据库应用以及数据源之间的关系 数据库访问接口nADO是DAO后继产品,它扩展了DAO和RDO所使用的对象模型,因为它包含更少的对象,更多的属性、方法(和参数)以及事件。nADO提供了一种数据库编程对象模型,类似于DAO的对象模型,但比DAO有更高的灵活性。ADO简化了OLE DB,属于
55、高层的数据库接口。另外同OLE DB相比,能够使用ADO的编程语言更多。n在使用上一般具有以下两种层次关系:在使用上一般具有以下两种层次关系:应用程序 - ADO - OLE DB - ODBC - 数据源应用程序 - ADO - OLE DB - 数据源。数据库访问接口ADO的对象层次图的对象层次图数据库访问接口nADO技术是通过技术是通过ADO对象的属性、方法来完成相应的对象的属性、方法来完成相应的数据库访问的。数据库访问的。ADO共有以下共有以下7个独立对象类。个独立对象类。Connection:连接对象,表示与数据源的连接关系Command:命令对象,用于定义一些特定的命令语法,以执行
56、相应的动作RecordSet:记录集对象,用于表示来自数据库表或命令执行结果的记录Property:属性对象,用于描述对象的属性,每个ADO对象都有一组惟一的属性来描述或控制对象的行为Error:错误对象,用于描述Connection对象在连接数据库时发生的错误Field:域(字段)对象,用来表示RecordSet对象的字段,一个记录行包含一个或多个域(字段)Parameter:参数对象,用来描述Command对象的命令参数,是命令所需要的变量部分数据库访问接口nADO实际上是OLE DB的应用层接口,可以处理各种OLE DB支持的数据源。n在ADO模型中,主体对象只有三个:Connectio
57、n、Command和Recordset。数据库访问接口n通常情况下,一个基于通常情况下,一个基于ADO的数据库应用使用如下过程操的数据库应用使用如下过程操作数据源里的数据:作数据源里的数据:(1) 创建一个Connection 对象。定义用于连接的字符串信息,包括数据源名称、用户ID、口令、连接超时、缺省数据库以及光标的位置。一个Connection 对象代表了同数据源的一次会话。可以通过Connection 对象控制事务,即执行BeginTrans、CommitTrans和RollbackTrans方法。(2) 打开数据源,建立同数据源的连接。(3) 执行一个SQL命令。一旦连接成功,就可以
58、运行查询了。可以以异步方式运行查询,也可以异步地处理查询结果,ADO会通知提供者后台提供数据。这样可以让应用程序继续处理其它事情而不必等待。(4) 使用结果集。完成了查询以后,结果集就可以被应用程序使用了。在不同的光标类型下,可以在客户端或者服务器端浏览和修改行数据。(5) 终止连接。当完成了所有数据操作后,可以销毁这个同数据源的连接。数据库访问接口用用Connection对象连接数据库对象连接数据库Connection对象的常用属性和方法对象的常用属性和方法nConnection对象的常用属性:对象的常用属性:Mode:用于设置数据的可用权限,其属性值是系统定义的一些常量,只能在关闭Conn
59、ection对象时设置。State:指明Connection对象的当前状态, 包括关闭、打开、正在连接、正在执 行命令等。ConnectionTimeout:设置对象建立连接操作失败时的等待时间。DefaultDatabase:设置连接数据源的默认数据库。ConnectionString:设置连接数据源的一些信息 数据库访问接口nConnection对象的常用方法:对象的常用方法:Open:用于建立到数据源的物理连接。Execute:用于执行指定的查询、SQL语句、存储过程或特定的文本。Cancel:用于取消用异步方式执行的ExecuteOpen方法的调用。Close:用于关闭一个连接。在对C
60、onnection对象操作结束时,使用Close方法释放所有与之关联的系统资源数据库访问接口打开和关闭数据库连接打开和关闭数据库连接n打开打开Connection对象,打开对象,打开Connection对象的对象的Open方方法的语法格式如下:法的语法格式如下:Open (ConnectionString, UserID, Password , Options )l关闭关闭Connection对象,关闭对象,关闭Connection对象的对象的Close方方法的语法格式如下:法的语法格式如下:对象实例名.Close数据库访问接口通过通过Connection对象执行对象执行SQL语句语句n打开打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Lesson 4 A birthday card教学设计-2025-2026学年初中英语冀教版2024七年级上册-冀教版2024
- 4.6 汽化与液化第二课时说课稿-2025-2026学年浙教版七年级上册科学
- 2025年中考化学试题分类汇编:常见仪器及基本操作(第1期)解析版
- 第三节 可再生资源的利用与保护-以土地资源为例说课稿-2025-2026学年高中地理湘教版选修Ⅵ环境保护-湘教版2004
- 蓄电池的结构组成
- 2025年天津市河西区中考二模物理试题(解析版)
- 蓄电池安全管理课件
- 蓄电池基本知识课件
- 2025年山东省青岛市中考化学试题(含答案)
- 2025年人教版八年级英语上册各单元词汇知识点和语法讲解与练习(有答案详解)
- 以水为界:洱海流域产业结构优化与水环境协同发展探究
- 2025年秋六年级数学人教版(上)第1课时 用方向和距离确定位置
- 学堂在线 唐宋词鉴赏 章节测试答案
- 2025护理文书书写规范
- 从抽象到现实:马克思现实的个人对抽象人的理论超越与时代价值
- 肺动脉高压个案护理
- 2025年机械设计与制造考试试题及答案
- 护理事业十五五发展规划(2026-2030)
- 大数据风控与信用评估体系
- 生物制造中试能力建设平台培育指南(2025版)
- 2025年学宪法、讲宪法知识竞赛题库及答案
评论
0/150
提交评论