当前位置:文档之家› 数据库访问技术

数据库访问技术

数据库访问技术
数据库访问技术

7.2 数据库访问技术

访问数据库中的数据对象时,一般可采用两种访问方式:一是登录用户直接借助DBMS 的数据操纵工具,通过图形或SQL命令接口联机访问;另外一种为程序代码通过应用程序编程接口(Application Programming Interface,API)进行数据库连接验证以及数据操作。两种数据库访问方式,可以抽象为图7.5的层次结构,从中可见中间的接口组件是数据库访问的桥梁与核心,本节主要就该部分的通用接口技术(即API访问方式)部分进行介绍。

图7.5 数据库访问结构示意

根据底层数据操作模式的差异,数据库接口可简单分为:本地(Local)数据库接口和客户机/服务器(Client/Server)数据库接口。

1.本地数据库接口

通过DBMS将用户数据请求转换成为简单的磁盘访问命令,并交由操作系统的文件管理系统执行;然后DBMS从文件管理系统得到数据响应并加以处理。由于DBMS数据文件组织结构的差异,本地型DBMS只能够读取特定的数据源。

2.客户机/服务器数据库接口

数据处理工作分散到工作站和服务器上处理。工作站通过特定的数据库通信API,把数据访问请求传给相应的服务器的后端数据驱动程序。由于不同客户机/服务器数据库管理系统通信机制的差异,异构数据库之间也难以实现透明通信互访。

因此,仅依靠特定DBMS提供的数据库访问接口难以支撑透明的、通用的异构数据库访问。后台数据库管理系统的变更或升级,需要程序员对特定API的重新学习,以及对应用程序代码的改写;而市场上DBMS产品众多,必将进一步加大系统开发人员的学习和维护压力,应用程序与数据源间的独立性难以真正实现。为此,建立更为通用的数据访问技术规范,为程序用户提供一套完整、统一的数据库访问接口,得到了数据库业界广泛认同与支持,并由此产生了众多成熟的数据库访问接口应用技术规范。

到目前为止,主流的数据库访问技术包括ODBC、MFC ADO、RDO、OLE DB、ADO、https://www.doczj.com/doc/1017029734.html,以及JDBC等通用技术标准。这些通用数据库访问技术的出现与发展大大降低了数据库系统开发与维护门槛,改善了数据库系统的移植性、扩展性,极大推动了数据库技术的发展与普及。下面就主流数据库访问技术发展与演化进行介绍。

7.2.1 ODBC

开放数据库互联(Open DataBase Connectivity,ODBC)数据库访问标准是微软公司于1991年11月首次提出的,是微软开放服务结构(Windows Open Services Architecture,WOSA)下与数据库相关的组成部分。它建立了一组数据库访问规范,并提供了一组标准API。目前ODBC可以在众多操作系统平台上使用,包括Windows、OS/2、SunOS、Solaris、Mac OS、SCO UNIX等。

在ODBC技术规范中,应用程序并不是直接对数据库进行操作,而是通过ODBC的驱动程序间接完成数据库访问。面向异构的数据库系统,应用程序依靠ODBC提供的统一的API进行编码,数据源变化主要涉及特定的驱动程序加载变换,从而把应用程序从特定的数据库物理操作中独立出来,解决了在异构数据库管理系统之间移植难题。ODBC的数据访问架构如图7.6所示。

图7.6 ODBC的数据访问架构

由图7.6可知,ODBC系统包括应用程序、驱动管理器、各种驱动程序与数据源等对象,不同对象在ODBC的数据库访问过程中充当不同的角色。

1.应用程序

应用程序为数据库用户提供了数据交互界面,可以是Microsoft Word、Excel和Access 等内嵌了ODBC支持的应用程序,也可以是由Java、C#、Visual C++或其他程序设计语言开发的用户程序。

数据访问时,应用程序与ODBC驱动程序管理器(如ODBC32.dll)进行静态或动态链接,主要工作包括:①向数据源申请连接;②发出SQL数据访问请求;③定义数据结果结构与空间;④获取数据访问结果;⑤判断处理状态,提交处理或者回滚;⑥释放数据源连接。

2.驱动管理器

驱动管理器是ODBC的一个重要组成部分,如在Windows的32位操作系统中,它包含在ODBC32.DLL动态链接库文件中。负责处理应用程序和ODBC驱动程序之间的连接,以及在网络中有关ODBC网络库和驱动程序之间的连接的问题。

驱动管理器主要工作如下:①使用ODBC初始化文件,把数据源名称映射到特定的数据库驱动程序上;②处理ODBC服务器的初始化操作;③为驱动程序提供ODBC调用入口;

④为ODBC调用进行参数和操作验证。

3.驱动程序

驱动程序(Driver)是用以支持ODBC函数调用的模块。应用程序必须通过调用驱动程序所支持的函数来对数据库进行操作。因为驱动程序通常是一个动态链接库,所以当应用程序需要连接到不同的数据库时,就要采用动态链接的方式去连接一个或者几个驱动程序。

驱动程序主要是执行ODBC 的相关接口函数,并与对应的数据源(Data Source)直接交互。驱动程序之工作如下:①建立与数据源的连接;②提交数据请求;③为应用程序转换数据格式;④为应用程序返回结果;⑤返回处理结果状态代码;⑥根据需要,定义游标,提交事务。

4.数据源

数据源是指数据以及访问这些数据所需的各种描述信息的组合,其中数据源名是应用程序访问特定数据库的连接标识,通过它应用程序无须获取数据源其他细节信息。同时应用系统可以同时与多个数据源进行连接。

虽然ODBC提供了一种通用的数据库访问接口标准,但是直接使用ODBC API是比较困难的。于是出现了对ODBC API的不同版本的封装类库,这些类库对ODBC API进行了更高级别的抽象,为用户提供了更为简单的数据库处理对象,如Visual Basic、Visual C++和Delphi 等高级程序设计语言提供的类库。MFC ODBC是微软基础类中封装的ODBC API类库,它为MFC库用户提供了高效、易用的数据库访问工具。

7.2.2 MFC DAO

数据访问对象(Data Access Object,DAO)提供了通过程序代码创建和操纵数据库的体系框架,是一组面向对象的API。它为数据库的管理与操作提供了完整的属性和方法,包括创建数据库,定义表和索引,建立表间的关系,定位和查询数据库等。DAO 最适用于单系统应用程序或小范围分布应用。

DAO有时也称为Jet数据库引擎,是组成数据引擎内核的一组动态链接库(DLL)。它提供了一组分层数据操作对象,支持两种数据库操作环境:①使用Microsoft的JET数据库引

擎,为存取本地ISAM(Index Sequential Access Method)数据库提供了最佳手段,例如FoxPro、Paradox、Microsoft Access、Excel等;②采用ODBC的存取方法存取客户机/服务器数据库,如Oracle、Sybase和SQL Server等。DAO应用程序访问数据库的原理如图7.7所示。

图7.7 DAO应用程序访问数据的原理

与ODBC类似,MFC也提供了一组DAO类,封装了底层的DAO API,从而简化了应用程序的调用开发。MFC的DAO类和ODBC类有很多相似之处,主要包括两点:(1)都支持对各种ODBC数据源的访问,都可以编写独立于DBMS的应用程序。

(2)提供了功能相似的类库。例如DAO的CDaoDatabase类对应于ODBC的CDatabase 类,DAO的CDaoRecordset类对应于ODBC的CRecordset类等。这些类所提供的程序方法也很相似。

尽管二者非常相似,但访问数据库的机制完全不同。DAO和Jet数据库引擎一起工作,如果该数据库是一个本地的Access数据库或其他ISAM类型的数据库,那么Jet引擎加载相应的数据库驱动程序。如果Jet正在使用远程数据库,那么该引擎加载ODBC驱动程序管理器。这使得DAO在访问Access、FoxPro、dBase、Paradox和Excel等数据库时具有最快速、最有效的性能。而利用ODBC调用来访问远程数据库,由于DAO与ODBC之间的调用,需要Jet引擎的中间解释参与,导致了较慢的连接速度以及额外的处理开销。

7.2.3 RDO

远程数据对象(Remote Data Objects,RDO)是DAO的继承者,它提供一组类对象,通过这些类对象可协助客户/服务器程序开发。与DAO是Jet引擎之上的对象层不同,RDO提供了一个抽象定向对象层直接与ODBC API相连接,而不需Jet引擎的中间支持,它把DAO 的易编程性和ODBC API的高性能有效地结合在一起。RDO能够访问ODBC API提供的全部功能,为ODBC提供了更易使用的COM封装,其分类层次如图7.8所示:

图7.8 RDO层次对象

使用RDO访问ODBC数据源的主要步骤包括:

(1)创建指定用户名和密码值的rdoEnvironment对象;

(2)在引用远程数据库之前,必须先建立到数据源的rdoConnection连接对象;

(3)提交数据访问请求;

(4)处理RDO结果集。

虽然RDO在很好地访问Jet 或ISAM 数据库方面受到限制,而且它只能通过现存的ODBC 驱动程序来访问关系数据库。但是,RDO 已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口之一。RDO 提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性以及方法。目前RDO已被后面发展起来的ADO 取代,但在某些情况下比ADO的性能更加突出。

7.2.4 OLE DB

对象链接嵌入数据库(Object Linking and Embedding Database,OLE DB)是Microsoft开发的一种高性能的、基于组件对象模型的数据库技术,它是微软的一致数据访问技术框架(Uniform Data Access,UDA)的一部分。ODBC虽然采用分层结构,为关系数据库提供了一致的数据库访问接口,但对于不同应用、不同格式的数据源,如操作系统中的文件、顺序索引

文件、桌面数据库、电子邮件、目录服务、多媒体数据、空间数据等,却显得无能为力,而UDA则很好地解决这个难题。UDA系统框架如图7.9所示。

图7.9 UDA技术架构及其OLE DB关系

从中可看出,UDA包括两层软件接口:OLE DB和ADO,它们分别对应于不同的应用开发层次。OLE DB是UDA的核心,在系统建立了数据访问的一组标准COM接口。它是一组符合COM标准、基于对象的C++ API函数。使用OLE DB API,可以编写能够访问符合OLE DB 标准的任何数据源的应用程序,也可以编写针对某种特定数据存储的查询处理程序和游标引擎,因此,OLE DB标准实际上是规定了数据消费者和数据提供者之间的一种应用层协议。

OLE DB应用系统包括三个组成部件:OLE DB数据库提供程序、OLE DB服务提供程序、OLE DB数据库应用程序。

当数据使用者(应用程序)需要数据时,它不是直接对数据库发出指令,而是通过接口与数据提供者进行交互。数据提供者负责与各种数据库联系,并且应用程序可以使用服务提供程序提供的服务来控制和处理数据。同样,用数据提供者提供的统一的接口屏蔽了异种数据库不一致的接口,简化了应用程序的编写。

OLE DB操作数据的步骤包括:①初始化COM运行环境;②创建并初始化一个数据源对象;③创建会话;④获得行集;⑤执行数据访问操作。

7.2.5 ADO

ActiveX数据对象(ActiveX Data Objects,ADO)是Microsoft提出的一种面向对象的编程接口,由上节可知,它是Microsoft一致数据访问技术框架UDA的另一组成部分(见图7.9所示),可用于关系或非关系数据库的访问。

ADO的设计初衷是与其创建一个统一数据库,不如提供一个能够访问不同数据库的统

一接口。为实现这一目标,微软在数据库和OLE DB中提供了一种“桥梁”程序,这种程序能够提供对数据库的连接。开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存,作为ActiveX的一部分,ADO也是COM组件的一部分。

与RDO对ODBC的COM封装相似,ADO为用户提供了一个熟悉的、高层的对OLE DB 的接口封装,不同的数据源需要各自的OLE DB提供者(OLE DB provider)。ADO针对客户/服务器以及WEB应用程序作了优化,它的优势包括易于使用、熟悉的界面,速度快以及较低的内存占用,同传统的数据对象层次(DAO和RDO)不同,ADO中的对象可以独立创建。ADO主要是面向连接的数据访问设计的,这种实时连接的访问模式占用了数据库服务器的重要资源。

7.2.6 https://www.doczj.com/doc/1017029734.html,

https://www.doczj.com/doc/1017029734.html,不是ADO版本的简单扩展,它是基于OLE DB技术以及.NET Framework的类库及编程语言而构建的一个全新的架构、产品和概念。它的访问数据源可以是关系数据库、文本文件、Excel表格、Email或者XML文件等,也可以是独立出来的应用程序数据的类对象,可实现数据源的离线访问。

在https://www.doczj.com/doc/1017029734.html,中,包括两个核心组件:.NET Framework数据管理提供程序和DataSet。二者关系如图7.10所示。

1.Dataset对象

与ADO中使用的Recordset内存数据集对应,https://www.doczj.com/doc/1017029734.html,使用了Dataset对象,但二者机制差异较大。作为https://www.doczj.com/doc/1017029734.html,中的非连接结构的核心组件,Dataset是XML与ADO结合的产物。通过.NET Framework数据管理提供程序,把数据从数据源中提取放到内存数据集DataSet中,提取数据完成后,自动关闭与数据源的连接。因此可以将DataSet视为一个虚拟的本地数据源,这个内存虚拟数据源与原来的数据源是完全断开的。在断开连接的情况下,用户在客户端操作数据集Dataset中的表、视图、关系。当用户提交DataSet修改时,还是通过.NET数据管理提供程序连接后台物理数据源,完成更新提交。

DataSet由一个或多个DataTable对象组成,每个DataTable对象可以看成一个内存中的关系表,DataTable可通过程序代码添加,也可通过读取本地或远程XML文件获得,或者从任何可访问的系统资源(包括内存和其他附属设备在内)读取。DataTable对象把不同来源数据整合在一个Dataset对象中,所有这些信息都以XML的形式存在。由于Dataset对象本身采用XML格式构建的,Dataset是不依赖于数据库链路的,可以用XML形式持久化或传输

任何Dataset对象,而且无需付出任何额外的代价。这样为程序员在编程时屏蔽了数据源之间的差异,从而获得一致的编程模型。

图7.10 https://www.doczj.com/doc/1017029734.html,体系结构图

1..NET数据管理提供程序

.NET数据管理提供程序设计目的是实现数据操作和对数据的快速访问,包括Connection、Command、DataReader和DataAdapter对象在内的组件。其中核心元素Connection 连接对象,用以建立与特定数据源的连接,类似于ADO中的Connection对象;Command 命令对象,是对数据源执行命令的对象,类似于ADO中的Command;DataReader数据读出器从数据源中读取数据流;DataAdapter数据适配器把数据源填充到Dataset中,并解析更新。

.NET Framework中,https://www.doczj.com/doc/1017029734.html,默认提供了4种典型数据来源,如表7.1所示。

表7.1 https://www.doczj.com/doc/1017029734.html,典型数据来源

7.2.7JDBC

Java数据库连接(Java Data Base Connectivity,JDBC)作为J2SE平台的一个组成部分,是遵循平台无关的基本原则而设计的,为异构数据库系统的透明操作提供了有力的技术支持。与其他Microsoft提出的数据访问技术类似,JDBC为Java应用程序连接和访问各种关系数据库提供了统一的API,它包括一组类和接口,支持ANSI SQL-92标准,实现了Java

程序通过调用标准的SQL命令对数据库进行透明查询、插入、删除和更新等操作。

JDBC提供的API可分成两部分,一部分是面向程序开发人员的JDBC API,另一部分是面向底层的JDBC DriverAPI。JDBC提供了一个JDBC Driver Manager,用以管理访问特定数据库系统的JDBC驱动程序。JDBC的基本层次结构由Java程序、JDBC驱动程序管理器、驱动程序、DBMS和数据库五部分组成,如图7.11所示。

图7.11 JDBC的层次结构

JDBC驱动程序实现了JDBC API中定义的所有抽象类和接口,一般由数据库厂商提供,目前主流数据库产品都提供相关的JDBC驱动程序。根据访问数据库的技术不同,JDBC驱动程序相应地分为四种类型:

1. JDBC-ODBC桥驱动程序(JDBC-ODBC Bridge)

此类驱动程序提供了通过ODBC驱动程序的JDBC访问。其特点是必须在本地计算机上先安装好ODBC驱动程序,然后通过JDBC-ODBC Bridge的转换,将Java程序中使用的JDBCAPI访问指令转换成ODBC API指令,进而通过ODBC驱动程序调用本地数据库驱动代码完成对数据库的访问。这种方法的不足是:执行效率比较低,不适合对大数据量存取的应用;要求客户端必须安装ODBC驱动,限制了其适用范围。

2. 部分Java的本地JDBC API桥驱动程序(JDBC-Native API Bridge)

同第一类一样,此类驱动程序也必须在本地计算机上先安装好特定的驱动程序(类似上一类的ODBC),然后通过JDBC-Native API Bridge的转换,把Java程序中使用的JDBC API 转换成Native API,进而存取数据库。这种方法效率比第一类驱动程序效率虽然高一些,但仍然需要在每台客户机上预先安装本地API库,因此不利于维护和使用。

3. 纯Java的JDBC中间件驱动程序(JDBC-Middleware)

使用这类驱动程序时不需要在本地计算机上安装任何附加软件,但是必须在安装数据库

管理系统的服务器端加装中间件(Middleware),这个中间件负责所有存取数据库时必要的转换。此类驱动程序能将JDBC访问转换成与数据库无关的标准网络协议(通常是HTTP或HTTPS)送出,然后由一个中间件服务器再将其转换成数据专用的访问指令,完成对数据库的操作。中间件服务器能支持对多种数据库的访问。由于是基于中间件服务器的,这类驱动程序的体积最小,效率较高,具有最大的灵活性,缺点是需要一个服务器中间件的支持。此类驱动采用标准的网络协议,可以被防火墙支持,是Internet应用理想的解决方案。

4.纯Java的JDBC驱动程序(Pure JDBC Driver)

使用这类驱动程序时无需安装任何附加的软件(无论是本地计算机或是数据库服务器端),所有存取数据库的操作都直接由JDBC驱动程序来完成。此类驱动程序能将JDBC调用转换成DBMS专用的网络协议。数据库厂商是这一类驱动程序的主提供者。它允许从客户机到数据库服务器的直接调用。这种驱动程序的效率最高,但由于采用DBMS专用的网络协议,可能不被防火墙支持。在Internet应用中会存在潜在安全隐患。

综上所述,第四类JDBC驱动程序一般是最佳选择,它不会增加任何额外的开销,并且由纯Java语言开发而成,拥有最佳的兼容性。由于第一类和第二类的JDBC驱动程序都必须事先安装其他附加的组件,降低了Java数据库程序的兼容性。第三类JDBC驱动程序也是不错的选择,它也是由纯Java语言开发而成的,并且中间件也仅仅需要在服务器端安装。

ADONET数据库访问技术的应用实验报告

课程名称网站设计与WEB编程实验名称https://www.doczj.com/doc/1017029734.html,数据库访问技术的应用一、实验目的 1.了解https://www.doczj.com/doc/1017029734.html,的结构,掌握https://www.doczj.com/doc/1017029734.html,控件的功能和应用方法。 2.灵活应用SQL语句对数据库或数据表进行操作。 3.掌握数据控件的功能和应用方法。 4.了解前台界面与后台数据库的关系,掌握通过前台对后台的操作方法。 二、实验设备 PC机一台。 三、实验内容 1.设计数据库表结构,编程实现数据的浏览、查询、录入、修改和删除功能。 四、实验要求 1.设计一个数据库,数据库中至少有一个学生数据表,(包含的数据库字段有学号、姓名、专业、班级、性别),选取合适的字段设置为主键,并手工在数据库表中添加若干条记录。 2.用多种方法建立前台界面与数据库的连接。 3.在后台编写代码将数据显示在GridView控件中。 4.设计数据查询界面,能根据班级、专业等字段查询数据记录。 5.选用合适的控件设计学生信息录入界面,后台代码编程实现数据表中记录的增加、修改和删除功能。 6.思考如果以学号作为主键,录入学号时,如何验证学号的唯一性? 7.思考为什么要将数据库连接字符串放在Web.config文件中? 8.完成实验报告。 五、实验内容 1.新建一个数据库stu,并设置主键

2.新建空白网页,添加sqldatasource控件,并设置数据源为之前新建的数据库,用sql身份验证,再加入gridview控件,设置数据源为sqldatasource1,启用分页选择等属性 3.网页运行结果

4.设计查询窗口 5.查询测试结果 查询窗口和显示窗口的代码

6.信息录入界面,使用detailsview控件与数据库关联

数据库访问技术简介

数据库访问技术简介 数据库中的数据存放在数据库文件中,我们要从数据库文件中获取数据,先要连接并登陆到存放数据库的服务器。一般来说,访问数据库中的数据有两种方式:一是通过DBMS (Data Base Management System,数据库管理系统)提供的数据库操作工具来访问,如通过SQL Server 2000的查询设计器来提交查询,或者通过SQL Server 2000的企业管理工具来访问。这种方式比较适合DBA对数据库进行管理;二是通过API(Application Programming Interface, 应用编程接口)来访问数据库,这种方式适合在应用程序中访问数据库。 在数据库发展的初期,各个开发商为自己的数据库设计了各自不同的DBMS,因此不同类型的数据库之间数据交换非常困难。为了解决这个问题,Microsoft提出了ODBC(Open Data Base Connectivity,开放数据库互连)技术,试图建立一种统一的应用程序访问数据库接口,使开发人员无需了解程序内部结构就可以访问数据库。 1、Microsoft提出的系列数据库访问技术 1.1、ODBC ODBC是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。应用程序可以使用所提供的API来访问任何提供了ODBC驱动程序的数据库。ODBC规范为应用程序提供了一套高层调用接口规范和基于动态链接的运行支持环境。ODBC已经成为一种标准,目前所有的关系数据库都提供了ODBC 驱动程序,使用ODBC开发的应用程序具有很好的适应性和可移植性,并且具有同时访问多种数据库系统的能力。这使得ODBC的应用非常广泛,基本可用于所有的关系数据库。 要使用ODBC,先要了解以下概念:ODBC驱动管理器、ODBC驱动程序、数据源。它们都是ODBC的组件。ODBC组件之间的关系如图1所示。

JAVAWEB数据库访问技术

JavaWeb数据库访问技术 JDBC是一种用于执行SQL语句的Java API。它由一组用Java编写的类和接口组成。 简单地说,JDBC可做三件事: ·与数据库建立连接 ·发送SQL语句 ·处理结果 一、JDBC的总体结构 在Java Application之下的是JDBC API,它提供了一系列的类代Java Application、JSP、Servlet等使用。 ·java.sql.DriverManager:用来加载不同的JDBC驱动程序并且为创建新的数据库连接提供支持。 ·java.sql.Connection:完成对某一指定数据库的连接功能。 ·java.sql.Statement:在一个已经创建的连接(java.sql.Connection)中作为执行SQL语句的容器;它包含了两个重要的子类。 1)java.sql.PreparedStatement:用于执行预编译的SQL语句。 2)java.sql.CallableStatement:用于执行数据库中已经创建好的存储过程。 ·java.sql.Result:代表特定SQL语句执行后的数据库结果集。

二、JDBC应用开发模式 在传统的客户端/服务器模式中,通常是在服务器商配置数据库,而在客户端安装内容丰富的GUI界面。在些模式中,JDBC驱动程序应该部署在客户端。 而在三层应用模式中,客户端不直接调用数据库,而是调用服务器上的中间件层,最后由中间件层完成数据库查询操作。 三层结构之优点:它将可视化表示(位于客户端)从业务逻辑(位于中间层)和原始数据(位于数据库)中分离出来。因此,我们可以从不同的客户端来访问相同的数据和相同的业务规则。

ADONET访问数据库技术的方法及步骤

1 https://www.doczj.com/doc/1017029734.html, 访问数据库技术的方法及步骤 徐照兴1 (江西服装职业技术学院,江西 南昌 330201) 摘 要:文中以访问SQL Server 数据库为例,以C#为编程语言,精简的描述了https://www.doczj.com/doc/1017029734.html, 访问数据库技术的方法及步骤,并给出了相应的核心代码。 关键词:https://www.doczj.com/doc/1017029734.html, C# 数据库 SQL Server 方法 1 徐照兴,1979-8,硕士,讲师,江西服装职业技术学院服装商贸学院,主要研究领域:数据库应用,web 开发 对数据库的访问是各种数据库应用程序开发的核心技术,.NET 框架中提出的https://www.doczj.com/doc/1017029734.html, 技术屏蔽了各种数据库的差异性,为应用程序的开发提供了一致的接口,增强了程序的可移植性和可扩展性,本文给出以https://www.doczj.com/doc/1017029734.html, 访问SQL Server 数据库为例,基于C#语言描述的https://www.doczj.com/doc/1017029734.html, 访问数据库技术的方法、步骤及核心代码,以期为.NET 从业人员提供帮助。 1 使用连接对象Connection 连接数据源 连接对象的作用是在应用程序与指定的数据库之间建立连接,这是访问数据库的第一步。核心代码如下: using System.Data; //引入包含基本数据访问类的https://www.doczj.com/doc/1017029734.html, 基本命名空间 using System.Data.SqlClient;//引入包含SQLServer 数据提供程序的命名空间 SqlConnection myconn = new SqlConnection();//定义并实例化一个Connection 对象 myconn.ConnectionString ="Server=数据库服务器名;DataBase=数据名;Uid=用户名;Pwd=密码";//使用SQL Server 用户登录验证方式连接数 据库 myconn.Open();//根据连接字符串,打开指定的数据库 注意: (1)若使用windows 验证方式连接数据库,连接的字符串如下: myconn.ConnectionString="Data Source=数据库服务器名;initial catalog=数据库名;persist security info=false;Integrated Security=SSPI"; (2)当数据库使用完毕后要及时关闭数据库的连接,即myconn.Close(); 2 使用命令对象Command 执行SQL 语句或存储过程操纵数据库 数据库连接打开后,接下来的工作就是操纵数据库,操纵数据库需要使用SQL 语句或存储过程,而https://www.doczj.com/doc/1017029734.html, 数据提供程序中的Command 对象就可以用来实现对数据库的操纵了。核心代码如下: string sqlstr = " ";//引号内为SQL 语句或存储过程(也即是要如何操纵数据库) SqlCommand mycmd = new SqlCommand(sqlstr, myconn);//定义并实例化一个Command 对象

基于WEB的数据库访问技术

基于WEB的数据库访问技术 【摘要】基于WEB的数据库访问技术,在各具体业务应用与底层用户数据库间建立一种可扩展、可移植,具有较强伸缩性的统一的对外接口,以有效地支撑业务网络应用。 【关键词】WEB;数据库访问技术 1.引言 在三层C/S中应用程序访问数据库服务器都需要一定的数据访问技术的支持。从总体上数据访问技术可以分为数据访问接口和数据访问对象两部分,两者之间的关系如图1所示。 图1 数据访问技术关系图 数据访问接口:提供一组标准化接口(数据库引擎),允许应用程序访问不同类型的数据库管理系统。如ODBC,JDBC,OLE DB等;数据访问对象:提供用于通过数据库访问接口访问数据库管理系统的通用标准对象,不受应用程序开发语言的限制,实现对数据库的连接、增加、删除和查询等操作。如常见的有DAO,RDO,ADO,https://www.doczj.com/doc/1017029734.html,等对象模型。在数据访问技术研究初期,不同的数据库厂商都会提供不同的数据访问接口,开发人员需要针对不同的数据库管理系统(DBMS)学习不同的专用数据库访问技术,比如DB2系统的CLI Library、Oracle 的OCI Library等。这对开发人员造成了极大的困惑,使得数据库应用程序的开发很困难,影响开发进度;而且所开发的应用程序局限性很大,严重依赖于数据库平台,不利于应用程序的跨数据库平台移植。 2.通用基于WEB数据库访问技术 信息化时代,网络和信息管理高速发展,数据库技术日臻成熟,功能日趋完善,而网络和数据库之间的关联与应用日益紧密,用户对信息的要求随之也要达到高标准的实时性与交互性,因此WEB服务器与数据库技术的结合显得格外重要。数据库访问中间件技术出现一改传统两层结构,采取C/S三层结构,充分发挥了WEB技术和数据库技术二者结合的综合优势与潜力,提高了性能、访问效率和安全性。常见的基于WEB的数据库访问技术分为以下几种: 2.1 CGI技术 CGI即通用网关接口,是Web服务器与应用程序交互传递信息的一种标准接口。CGI的工作原理是客户端浏览器通过URL向Web服务器提出请求,服务器的守护进程将此请求传给相应CGI程序进行处理,然后CGI将处理结果返回客户端浏览器。CGI优点:通用性强,基本支持所有HTTP服务器,交互能力强,跨平台性能极佳,操作简单灵活。CGI缺点:应用程序通常独立执行,客户共享

在Web系统中用连接池访问数据库

收稿日期5作者简介王丽辉(),女,吉林省九台市人,实验师,从事计算机教学与实验工作。 在Web 系统中用连接池访问数据库 王丽辉,王东来 (吉林农业科技学院信息工程学院,吉林132101) 摘 要:介绍了基于Java 的数据库访问机制,阐述了连接池的概念以及连接池的具体实现。对实际应用中出现的问题进行分析,提出了使用连接池技术的解决方案。分析了连接池的工作原理,并通过一个实例给出了连接池技术的实现方案。 关键词:Jav a ;连接池;JD BC 中图分类号:TP393 文献标识码:A Using Connection Pool to Visit Databa se in Web System WAN G Lihui ,WANG Donglai (Jilin Agricu ltural Science and Techno lo gy Colleg e C ollege o f In formation Eng in eering ,Jilin 132101,Ch ina) A bstract :In this paper ,introduced t he access mechani sm based Java and explained the c once ption and im ple 2mentation of c onnection pool.Put forw ard the s olutionson how to use connection pool technology a fter the problems in applications were analysed.Analysed the w orking principle and gave an implementations pr ogram by one exam ple. K ey w or ds :Java ;connection pool ;JDBC Java 是S UN 公司推出的一种面向对象的语言,它利用特有的虚拟机技术实现了平台的无关性,而这一特性又促使其成为一种开发W eb 应用系统的优秀语言。由于在网上处理的数据成倍增加,而且越来越复杂,迫使科学研究者和应用开发者必须考虑如何快速建立完善有效的新模型以及如何改进和优化一些传统模型。众所周知,在一个基于数据库的Web 系统中,建立数据库连接的操作是系统中代价最大的操作之一。很多时候,可能网站速度瓶颈就在于此。为此我们提出了在传统模型中引入连接池技术的方法,从而很好地解决了这个问题。连接池技术是通过重用一组连接对象,使所有用户之间共享一组已经打开的连接。我们提出的方法可以节省建立数据库连接的时间,提高访问数据库的速度。 1 Java 应用程序访问数据库基本原理 Java 语言的跨平台性、安全性以及可移植性等特性使其成为开发数据库的一种优秀语言[1]。JD BC (Java DataBase C onnectivity )是Java 程序连接和存取数据库的应用程序接口(API ),此接口是Java 核心API 的一部分。JD BC 向应用程序开发者提供了独立于数据库的统一的API 。JD BC 是由一组驱动程序实现的Java 接口,驱动程序负责从标准JD BC 调用向支持的数据库所需要的具体调用转变。除了向开发都提供统一的独立于D BMS 之外的框架,JD BC 还提供了让开发者保持数据库厂家提供的特定功能的办法。驱动程序管理器API (对程序员是透明的)与实际连接到数据库的各个第三方驱动程序进行通信,并且返回查询的信息,或者执行由查询规定的操作。(1)建立数据库连接;(2)利用SQ L 语句对数据进行操作;(3)断开数据库连接在基于数据库的W eb 系统中,在某一较短的时间段内,只有少数Web 请求时,传统模式还能很好的工作,但随着请求数不断增加,系统的开销越来越大,响应W eb 、请求的速度越来越慢,直到无法响应W eb 请求。造成这种结果的原因是由于传统模式存在下面的一些缺陷:(1)一次W eb 请求都需要建立一次数据库连接。每建立一次数据 5 :2009-0-10 :1972-11

访问Web数据库的几种解决方案

摘要:#$%&’$&%的发展使数据库技术与(&)技术的结合成为研究的热点,*+#、#,*和-./是访问(&)数据库的基本方案。与*+#和#,*相比较,-./作为一种全新的.&’0&’端技术具有先进的体系结构,其运行效率高、执行速度快、支持多线程、程序编写简单,且能实现复杂功能,是目前访问(&)数据库的最有效的解决方案。 关键词:(&)数据库;-./;*+#;#,*中图分类号:1/232 文献标识码:- 随着#$%&’$&%的发展以及人们对信息共享要求的提高,数据库与(&)紧密地结合在了一起,数据库技术与(&)技术的结合成为当前研究的热点。(&)数据库访问技术是#$%&’$&%技术和数据库技术的交叉点,基于中间件技术访问(&)的原理如下图所示: 中间件负责管理(&)服务器和数据库服务器之间的通信并提供应用程序服务。它能直接或调用外部程序或脚本代码来访问数据库,因此它可以提供与数据库相关的动态4156页面,将用户的查询结果格式化为4156页面,通过(&)服务器返回给浏览器。 最基本的中间件技术有通用网关接口*+#、#$%&’$&%数据库连接器#,*, 还有微软新开发的-7%80&9,:%:;)<&7%技术-,;,它作为-./的核心技术之一,集中体现了-./技术简洁而强大的数据库访问功能。 =>通用网关接口*+# 通用网关接口*+#?*@AA@$+:%&B:C #$D %&’E:7&F 是(&)服务器在调用外部程序时的接口规范协议,它规定了一套标准的参数格式和环境变量。*+#程序的作用是扩展(&)服务器的功能,执行(&)服务器所不能完成的任务。其基本思想是:客户端即(&)浏览器通过411/与(&)服务器进行交互,(&)服务器通过*+#与数据库服务器进行交互,数据库服务器提供数据库连接。 外部*+#程序通过环境变量、命令行参数、标准输入输出与(&)服务器进行通信,传递有关参数和处理结果,应用在(&)数据库上时,它可以实时动态地生成4156文件,根据用户的需求输出动态信息,把数据库服务器中的数据作为信息源对外提供服务,把(&)服务和数据库服务结合起来。*+#程序通常是一个可执行文件,*+#程序的执行一般有两种方式,一种是通过GH6直接调用,另一种是通过交互式主页里的I@’A 表单调用,在用户填完表单所需的信息后按确认按钮启动*+#程序。*+#接口能支持;,J*类型的数据库,从而能够支持常用的.K6.&’0&’、;’:7L&、-77&MM 、I@NO’@等数据库。利用*+#连接数据库的开发 访问(&)数据库的几种解决方案 郭鲜凤 ?太原大学机电系,山西太原P2PPP3F 收稿日期:"PP"Q P"Q =R 作者简介:郭鲜凤?=3S"—F ,女,太原人,太原大学机电系讲师。 T@U’$:L ;E 1:8CU:$G$80&’M8%C 太原大学学报 "PP"年S 月第2卷第"期总第=P 期 V@L>2W@>".UAW@> =P

实验8-jdbc数据库访问

实验8 JDBC访问数据库 一、实验目的 1. 掌握使用传统的方法访问数据库; 2. 掌握使用数据源的方法访问数据库。 二、实验原理 数据库应用是Web应用开发的一个重要应用。Web应用程序访问数据库有两种方法:传统的方法和使用JNDI数据源的方法。 传统方法访问数据库的步骤是:①加载数据库驱动程序;②建立连接对象;③创建语句对象;④获得结果集;⑤关闭有关连接对象。 使用数据源访问数据库的步骤是:①配置数据源(局部数据源或全局数据源);②通过JNDI机制查找命名数据源;③通过数据源对象创建连接对象;④其他与传统方法一致。 三、实验内容与步骤 (一)使用传统方法通过JSP页面访问数据库 【步骤1】创建数据库。假设在PostgreSQL建立了一个名为bookstore的数据库,在其中建立books表,代码如下: CREATE TABLE books ( bookid character(5) PRIMARY KEY, --书号 title varchar2(80), --书名 author character varying(20), --作者 publisher character varying (40), --出版社 price real --价格 ); 向books表中插入几条记录,代码如下: INSERT INTO books V ALUES ('204','Head First Servlets & JSP', 'Bryan Basham', '中国电力出版社',98.00); INSERT INTO books V ALUES ('201', 'Servlets 与JSP 核心教程', 'Hall Marty','清华大学出版社',45); INSERT INTO books V ALUES ('202', 'Tomcat与Java Web 开发技术祥解', '孙卫琴', '机械工业出版社',45); INSERT INTO books V ALUES ('203', 'JSP 应用开发技术', '柳永坡','人民邮电出版社',52); INSERT INTO books V ALUES ('205', 'J2EE 1.4 编程指南', 'Spielman Sue','电子工业出版社',68); 注意:需要将数据库的JDBC驱动程序安装到应用程序的WEB-INF\lib目录中。 【步骤2】使用下面JSP页面displayBooks.jsp访问books表中的数据。 <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.sql.*"%> Database Access Test

相关主题
文本预览
相关文档 最新文档