您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页数据访问对象范文

数据访问对象范文

来源:二三娱乐

数据访问对象范文(精选3篇)

数据访问对象 第1篇

1 直接访问数据

1.1 访问普通变量

面向对象的程序设计与面向过程的程序设计一样,都少不了要定义和使用变量,而变量通常有两个数

据值有待访问,一个是其左值,另一个是其右值;要对该变量的左、右值进行访问可以采用直接访问的方法。例如,有一C++语句为:int x=5;则该语句的功能作用是定义一个整型变量x,并赋其初始化值为5;变量x定义后,在后面的程序代码中,就可以直接访问该x变量;如语句:

int y=x;//访问变量x的右值,把x存储单元中的数据5赋给变量y。

int *p=&x;//访问变量x的左值,p指向x存储单元,把x存储单元的地圵赋给指针变量p。

又如:int x=2,y=8;

(x>y)?x:y=10;//访问变量的左值

int z=(x>y)?x:y;//访问变量的右值

1.2 访问对象

对于一个实例对象而言,同样可以采用直接访问的方法来访问该对象的左、右值。和普通变量一样,

也要遵循“先声明,后使用”的原则。具体程序代码说明如下:

显然,对普通变量和实例对象的直接访问方法简单、方便,只需在正确定义声明变量(对象)之后直接使用该变量名就可以了。

2 间接访问数据

一般情况下,对数据的访问使用直接访问的方法就可以了,但在有些情况下,直接访问数据可能得不到想要的结果,但如果借助于VC++语言环境下的引用或指针来实现对数据的间接访问就能起到特别的功效。

2.1 使用引用访问数据

1)使用引用访问变量

引用(Reference)是C++独有的特征。引用是某个变量的别名,是另一种访问变量的方法。建立引用时,要用某个变量对其初始化,于是它就被绑定在那个变量上。对于引用的改动就是对其所绑定的变量的改动[1],在参数传递中,可以实现按址传递参数的作用,从而解决按值传递参数时存在的问题。

例如,两个数据交换程序代码说明如下:

程序运行结果是:i和j的值为:3 8

原想要执行的交换两变量i和j值的操作没有实现,分析其原因在于该swap()函数调用时,实际参数是按值方式传递给形参,在swap()函数内部其实已经完成了两个形参变量数据的交换,只是其内部数据的交换并不影响实参变量i和j的存储单元中的数据,它们仍然是原来的值3 和8。而采用引用通过传址方式来传递参数可以达到目的。现仅将上面程序中的swap()函数的形参修改,其他不改动。

程序运行结果是:i和j的值为: 8 3

可见,通过修改swap()函数中的形参,把原定义的数据传递方式改变为按引用访问数据方式就可达到交换两个实参数据的目的。

2)引用作为函数返回值

有些情况下,将引用作为函数返回值也能起到间接访问变量左右值的作用。具体程序代码说明如下:

显然,当执行main()函数时,语句(1)中对add()函数的调用就说明了使用其左右值的情况,即赋值表达式(等号)左边的add函数返回值作为左值使用,而右边的作为右值使用。

3)引用访问对象

引用不仅能访问普通变量,同样可以访问实例对象中的数据成员。具体程序代码说明如下所示:

程序运行结果如图1所示:

可见,选择引用方式传递三个实参x,y,x,对象d1通过调用get_date()成员函数成功访问了对象d1 中的私有数据。

2.2 使用指针访问数据

指针是地址变量,指针中存储的并不是所使用的数据本身,而是所要使用的数据在内存中的地址。通过指针变量可以间接地访问内存单元中的数据[2]。

1)指针访问变量

利用指针传递参数,和引用一样同样可以解决按值传递参数时存在的问题。现再将上面程序中的swap()函数中的形参修改为指针,其他不改动。

在主函数main()中调用函数swap(&i, &j); 程序运行结果是:i和j的值为: 8 3

通过修改swap()函数中的形参,借助于定义两个指针变量来完成数据传递,实际上是通过指针变量间接访问了两个实参变量a、b,把这两个实参变量的内存单元中的值交换了。显然,通过指针的间接访问,达到了交换数据的目的。

2)指针访问函数

在函数的定义及调用过程中,利用指针也可以间接地访问函数及其数据。具体程序代码说明如下:

程序运行结果是:字符串的长度是12

由此说明,通过函数指针可以便捷地访问函数中的数据。3)

指针访问对象

在C++对象模型中,只要创建每一个对象实例,系统都会为其分配一隐含指针this,通过该指针可以方便地访问对象中的数据。此外,用户还可以根据需要自定义一个类类型的指针变量,通过该指针来访问其实例对象。对象的指针就是该对象空间的起始地址,从而达到间接访问对象数据的目的[3]。

使用对象指针比直接使用对象更加灵活、方便。所以应尽量使用对象指针代替对象,特别是作为函数参数或返回值时,使用对象指针比使用对象本身具有更清晰的语义[4]。具体程序代码说明如下:

程序运行结果是:3+2i

3+2i

可见,在程序中灵活利用对象指针可以方便地访问实例对象及其数据。

3 使用文件流访问数据

为处理文件的输入/输出,VC++分别从istream类、ostream类和iostream类公有派生出了ifstream类、ofstream类和fstream类3 个面向文件的流类,它们都在fstream.h文件中定义[5]。因此,文件流类在流与文件之间建立了连接,提供了以输入文件流(ifstream类)、输出文件流(ofstream类)及输入/输出文件流(fstream类)这三种文件流方式来实现对文件数据的访问。

3.1 写(输出)数据

利用输出文件流(ofstream)可将程序中的数据写入到磁盘文件中。具体实现用以下代码说明:把一个整数、一个浮点数和一个字符串写到文本文件li1.txt中。

程序运行后,将在当前目录下的li1.txt中写入了256、198.69和C++ Language三个数据。

3.2 读(输入)数据

利用输入文件流(ifstream)可将磁盘文件中的数据读取到程序中。具体实现用以下程序代码说明:把上述文本文件li1.txt中所存放有一个整数、一个浮点数和一个字符串读取到程序中。

3.3 读(输入)/写(输出)数据

利用输入/输出文件流(fstream)可对数据进行读(输入)、写(输出)操作。具体实现用以下程序代码说明。

程序运行结果如图2所示:

由此可见,灵活利用输入/输出文件流(fstream)可方便地对磁盘文件数据进行读、写操作。

4 结束语

综上所述,面向对象程序设计中少不了对数据的访问,如何灵活、便捷地实现对程序中相关数据的有效访问将会直接影响到程序的运行效率和应用性能。因此,合理使用直接、间接及文件流这三种数据访问方法,借助VC++中的引用、指针及输入/输出文件流这三种数据访问技术可以很好解决面向对象程序设计中对相关数据访问的问题,为数据的正确使用提供了保障,从而确保了程序的正常运行。

摘要:访问数据是面向对象程序设计中的重要工作。通过分析面向对象技术中的数据访问方法,提出了直接、间接及文件流三种访问程序中相关数据的方法,并以实例说明VC++中的引用、指针及输入/输出文件流在这三种数据访问方法中的具体应用。

关键词:面向对象,数据访问,方法,VC++

参考文献

[1]甘玲,邱劲.面向对象技术与Visual C++[M].北京:清华大学出版社,2006.

[2]潘嘉杰.易学C++[M].北京:人民邮电出版社,2008.

[3]谭浩强.C++程序设计[M].北京:清华大学出版社,2008.

[4]李师贤,李文军,周晓聪,等.面向对象程序设计基础[M].2版.北京:高等教育出版社,2011.

数据访问对象 第2篇

基于HTTP 的数据访问数据库教程

。这样用户完全可以把SQL Server 放到一个URL 上了,从而保证开发人员和潜在的最终用户都能简单地通过一个URL 来访问SQL Server。 本节我们主要介绍以下三个问题:

如何创建虚拟目录

HTTP 的语法

HTTP 的访问能力20.4.1 创建虚拟目录

在使用HTTP 访问SQL Server 2000 数据库前必须首先利用IIS 专门为SQL Server 提供的虚拟目录管理器来创建虚拟目录(virtual directory), 同时确保使用的操作系统支持IIS 服务器。创建虚拟目录其主要目的就是在SQL Server 实例与新创建的虚拟目录之间建立新的连接。下面以一个具体的例子来介绍创建虚拟目录要执行哪些步骤。

(1) 在SQL Server Tool 程序单中选择Configure SQL XML Support in IIS 选项。

(2) 打开要创建虚拟目录的服务器图标,然后选择管理站点图标。右击该图标在弹出菜单中选择New ,单击Virtual Directory。

(3) 选中General 标签页,如图20-3 所示。

(4) 该标签页用来给出HTTP 存取数据库数据时所要使用的虚拟目录以及虚拟目录的真实目录的路径。真实目录主要存放通过该虚拟目录要访问的文件,此外模板文件(template files) 和注释匹配模式文件(annotated mapping schema files) 也存储在该目录。在该例中我们在Virtual Directory Name 中输入VirtualRoot; 在Local Path 中输入 VirtualRoot。

(5) 选中Security 标签页,如图20-4 所示。

该标签页用来定义登录的认证方法,共在三种IIS 认证模式。

Always log on as

Windows 和SQL Server 帐号与IIS 认证安全的匿名访问模式相匹配。匿名访问是指任何人都可以访问虚拟目录,但是访问服务器的任何一个客户都必须提供正确的帐号和口令才能够登录成功。其中SQL Server 选项表示当指定SQL Server 登录时,虚拟目录的所有用户都可以使用该SQL Server 登录帐号;Windows 选项表示为所有使用该虚拟目录的用户指定一个Windows 帐号,在缺省情况下使用安装IIS 时的缺省用户IUSR_ServerName。

Use Windows Integrated Authentication

该选项表示使用Windows NT 或Windows 2000 的IIS 认证方法,即合法的 Windows NT 或Windows 2000 用户才具有访问虚拟目录的权限。该访问模式要求 Windows 用户也具有访问SQL Server 的权限。

Use Basic Authentication (Clear Text) to SQL Server account

该选项是指通过SQL Server 登录和口令来进行安全认证。本认证模式与IIS 的基本认证模式不同。我们可以使用匿名认证。(6) 选中Data Source 标签页,如图20-5 所示。在Data Source 标签页主要完成两个任务,其一是选择一个SQL Server 2000 运行实体,其二选择包含在该实体内且被HTTP 访问的数据库,

在本例中选择Pubs 数据库。

(7) 选中Setting 标签页,如图20-6 所示。 Setting 标签页用来确定将使用何种SQL Server 2000 访问类型来通过虚拟目录进行数据访问。应该指出模板(Template) 文件和模式(Schema) 文件可以存储在任何地方。

Allow URL queries

表示直接在URL 中执行SQL 查询,但是考虑到访问的安全性我们建议不使用该选项。

Allow template queries

表示在URL 中执行已存在的模板文件。模板是合法的XML 文档,包括一个或多个SQL 查询。在缺省情况下使用该选项。

Allow XPath

表示直接在URL 中对注释匹配模式进行查询。

(8) 选中Virtual Names 标签页,如图20-7 所示。

该标签页主要用来定义虚拟名称。在URL 中只能使用虚拟名称,基于安全考虑,任何关于执行的对象以及文件的存储位置等信息都被隐藏。

Defined virtual names 表示在访问网络资源时将要用到的虚拟名称。比如通过IISServer/VirtualRoot/ temvir/可以访问位于VirtualRoot 虚拟目录下的temvir。

Type 指出要创建的虚拟名称属于哪一个查询类型。

dbobject 表示查询的是数据库对象。

schema 表示对匹配模式执行Xpath 查询。

template 表示模板文件中的SQL 查询。

path 指出模板或模式所在的目录路径,该路径可以是相对路径也可以是绝对路径。如果查询类型为dbobject, 则不需指明路径。该路径可以指文件夹(虚拟名称)的路径也可以指一文件路径。如果指文件夹(虚拟名称)的路径,则在URL 中必须加上文件的名称。例如: IISServer/VirtualRoot/ temvir/sample.xml(9)选中Advanced 标签页,如图20-8 所示。

Advanced 标签页主要是用来指定sqlisapi.dll 存放的位置,通过虚拟目录访问 SQL Server 2000 实体时需要使用该文件。如果虚拟目录被创建于远程服务器上,则必须提供存放位置。在缺省情况下sqlisapi.dll 文件被安装于FilesCommon FilesSystemOle DB 目录下。

20.4.2 HTTP 的访问能力

在SQL Server 2000 中,HTTP 的访问能力得到了明显的提高用户,不仅可以在 URL 中直接输入SQL 语句或存储过程,而且能够在URL 中加入模板文件或进行 XPath 查询。在详细介绍这些访问方法之前首先让读者了解HTTP 的语法。

3 在URL 中使用模板

试析JAVA数据库的访问技术 第3篇

关键词:JAVA;数据库;访问技术

中图分类号:TP311.13 文献标识码:A文章编号:1007-9599 (2011) 08-0000-01

Access Technology Analysis of the JAVA Database

Wang Yang

(Haerbin University of Commerce,Haerbin150001,China)

Abstract:Java is more used to use a computer program marks one of the languages,which can be created within a computer database to meet user's needs.For the purposes of Java,JDBC is a Java application with the focus of a variety of database connection.In view of these,this paper on the JAVA database access technology is discussed.

Keywords:JAVA;Database;Access technology

一、JDBC技术介绍

JDBC本质上属于Java API,其能够在执行SQL语句中发挥相应的作用。JDBC的主要结构来源于Java语言编写的类和界面,满足了用户各种使用需求。JDBC体系的主要组成部分包括:应用程序、JDBC API、JDBC驱动程序管理器、数据源。JDBC API利用了JDBC驱动程序管理器、JDBC驱动程序,为数据库内部结构的连接创造条件。JDBC的体系结构如图1所示。

图1.JDBC体系结构图

根据上图得知,JDBC API体系的主要作用体现于将数据库间JDBC驱动程序存在的差异屏蔽掉,为程序人员的设计、编写提供科学的指标,这可以对Java中访问任意类型的数据库创造技术条件。JDBC驱动程序管理器是一种应用程序装载数据库驱动程序。JDBC驱动程序在运行时与数据库之间的关系密切,能够实现与数据源的连接,向数据库发出SQL申请。

当前,国内现有的计算机技术水平有限,最普遍的JDBC驱动程序包括:1.JDBC-ODBC桥+ODBC驱动程序。主要是Java Soft桥产品结合ODBC驱动程序创造JDBC访问。2.本地API。该驱动程序能够实现不同结构的转换运用,如:将客户机API上的JDBC转换为Oracle、Sybase、Informix、DB2参与程序执行。3.JDBC网络纯Java驱动程序。该驱动把JDBC转调整成与DBMS无关联的网络协议,这样可以给服务器的操作功能提供帮助。4.本地协议纯Java驱动程序。其主要是把JDBC调用直接换成DBMS使用的网络协议。由此准许从客户机机器上直接调用DBMS服务器,对Intranet访问可创造有利的条件。

JDBC驱动程形式的选择应按照用户实际使用需要,每种驱动都有自己的优势,程序设计人员要参照所设计的方案科学挑选。根据长期的设计经验看,一般最好不要选择桥驱动程序,即:JDBC-ODBC桥+ODBC驱动程序、本地API,它们仅仅是作为纯Java驱动程序的初始结构,其使用性能并未得到全面认真考核。而JDBC网络纯Java驱动程序、本地协议纯Java驱动程序则是从JDBC访问数据库的最佳方式,其除了能运用程序完成操作外,还能实现跨区域的程序调控,避免了从客户端安装驱动程序造成的不便。JDBC网络纯Java驱动程序的优点较为明显,其能够实现各项数据库的操作,是运用十分广泛的JDBC模式,将这种驱动运用在计算机网络中性能十分优越。

在所有应用程序里,其需要涉及到几个关键的结构形式,包括:Java.sql.Connection完成对某一指定数据库的链接,Java.sql.Driver Manager处理驱动程序的装载和建立新的数据库链接,Java.sql.Statement管理在指定数据库链接上的SQL语句的执行,Java.sql.ResultSet从数据库返回的结果集。

二、优化数据库访问效率的常用方式

(一)数据库连接池技术。根据数据库连接的实际需要创建合适的“缓冲池”是,这是优化数据库连接的前提条件。设计时可向缓冲池添加相应的连接。若使用到建立数据库连接时,则可从“缓冲池”任意调出则可使用。我们可利用设定连接池最大连接数进行优化,这样能避免系统无尽的与数据库连接。尤为关键的是在连接过程中可利用连接池的管理机制对数据库及时监控,如:连接数量、运行状态等,这些可以提高数据库的使用性能,促进新产品的研究开发。

(二)JavaBean技术。JavaBean技术的运用会面临各种不同的问题,程序访问数据库则是最常见的。当数据库需要进行调整时,如:密码、程序等,都应该添加到相应的程序里完成操作,当需要数据库链接时去调用这个文件则能处理问题。常用的方式为将数据库链接做成一个JavaBean,然后进行封装数据库操作。JavaBean技术能够结合JavaBean封装事务逻辑和客户端操作的分离,保证计算机操作系统性能的发挥。这不仅简化了数据库程序的复杂性,还能提高整体系统的运行效率。

(三)数据库批量技术。数据库批量更新技术的重点是对相关的数据程序不断更新,从而保证整个数据库之间的流动性,让其它方面的数据得到充分运用。与把同组中的每一个更新逐一提交给数据库处理方式相比,数据库批量更新技术在使用性能上要上升一个层次,促进了数据库访问速度的提升。

(四)多线程及线程池技术。多线程技术的运用重点在于多处理器的多个线程执行操作进行协调,从而减短处理器单元的闲置时间,使得处理器单元运行能力不断增强。而在操作过程中,若某个程序出现问题则会增加处理器的任务量,给系统的正常运行带来不便。线程池技术引进可大大改善服务器程序性能的。而线程池技术的运用能显著降低虚拟机的工作量,提高了程序指令的运行效率。

三、结语

综上所述,JAVA数据库的访问技术的优化有助于程序指令的执行,这对于新时期网络操作系统性能的改善有促进作用。设计人员在编写程序指令时应详细检查每个步骤,对可疑优化修改的地方详细调整。

参考文献:

[1]刘志君.基于Web和JSP/Java Bean技术的远程教育系统的设计与实现[J].辽宁:辽宁科技学院学报,2005,2

[2]刘中兵.JSP数据库项目案例导航[M].北京:清华大学出版社,2005,12

[3]刘琳,赵文静.提高基于Java的数据库访问效率的研究[J].现代电子技术,2006,8

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务