毕业设计(论文)书店管理系统.doc

上传人:仙人指路1688 文档编号:3977426 上传时间:2023-03-30 格式:DOC 页数:39 大小:2.46MB
返回 下载 相关 举报
毕业设计(论文)书店管理系统.doc_第1页
第1页 / 共39页
毕业设计(论文)书店管理系统.doc_第2页
第2页 / 共39页
毕业设计(论文)书店管理系统.doc_第3页
第3页 / 共39页
毕业设计(论文)书店管理系统.doc_第4页
第4页 / 共39页
毕业设计(论文)书店管理系统.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《毕业设计(论文)书店管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)书店管理系统.doc(39页珍藏版)》请在三一办公上搜索。

1、 本科毕业设计 题目:书店管理系统姓 名: 学 号: 专 业:计算机科学与技术院 系: 信息工程学院 指导老师: 实习单位: 完成时间: 2009-05-11 安徽新华学院教务处安徽新华学院本科毕业生毕业论文承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。毕业论文(设计)作

2、者签名: 日期: 目 录摘要 2Abstract 3第1章 绪论41.1 书店管理系统概述41.2 书店信息化管理现状和意义41.3 书店管理系统的关键技术分析51.4 课题来源、主要研究内容、目的及意义71.5 论文章节81.6 小结9第2章 需求分析 102.1 需求分析概述 102.2 书店管理系统需求背景 102.3 书店管理系统功能结构设计 102.4 书店管理系统功能结构图 102.5 书店管理系统用例图设计 132.6 系统流程图 142.7 小结 14第3章 系统的设计 153.1 书店管理系统架构设计 153.2 书店管理系统业务实体设计 163.3 书店管理系统持久层的设计

3、 203.4 书店管理系统逻辑层的设计 213.5 书店管理系统表示层的设计 243.6 小结 24第4章 系统的实现 254.1 登录窗体 254.2 书店管理系统主界面 254.3 用户管理 264.4 图书信息管理 274.5 采购管理实现 284.6 销售管理的实现 294.7 库存管理的实现 314.8 系统设置 334.9 小结 34第5章 总结与展望 355.1 总结 355.2 展望 35参考文献36谢辞37 摘要虽然现在社会发展的很快,但是还有很大一部分书店仍然是手工管理,效率很低,而且不能及时了解书店各类图书的库存信息,不便于及时调整图书结构。所以为了提高工作质量和效率,开

4、发一个书店管理系统是很有必要的。书店管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,故采用Java语言中的图形用户界面(GUI)和SQL SERVER2000数据库来开发本系统。本系统共有六大模块,用户管理、书店管理、订购管理、销售管理、库存管理、系统设置。用户管理包括营业员管理和供应商管理。书店管理包括图书类别管理和图书信息管理。订购管理包括订购单查询,销售管理包括图书销售和销售单查询,库存管理主要包括库存盘点、库存报警、库存查询、库存报表单打印,系统设置主要包括数据库备份和还原、密码修改、系统退出等功能。关键词:书店,图形用户界面

5、,图书销售,库存查询,信息管理系统AbstractAlthough the speed of the citys development is very fast,there is much work need be done by the hands management in many bookstores,the works effective is very lower and we cant know fully information about the books storage in time that make us not adjust to the books struc

6、ture.in order to improve the works effective and quatity,we should make the system of the books storage .Bookstore management system is the typical information management system (MIS), which mainly includes the establishment and the maintenance and the programming of the frontend application, Java l

7、anguage in a graphical user interface (GUI) and SERVER2000 SQL database to develop this system.Key words: bookstore,GUI,bookselling,storequery,MIS. This system has six module, user management, management, order management, bookstore sales management, inventory management, system configuration. User

8、management including sales management and supplier management. Bookstore management including books management category and the books information management. Order management including orders, sales management including sales and marketing single query, inventory management, including stock, invento

9、ry alarm, stock inquiry, inventory report form printing system, including database backup and restore, password revision, exit etc. Function.Keywords: bookstore;gui;bookselling;storequery;MIS第1章 绪论1.1 书店管理系统概述 书店管理系统是为了对书店实行计算机化的管理,以提高工作效率,方便用户。主要功能有对图书信息、库存信息、销售信息、营业员信息等进行管理和检索,以及对系统自身的用户权限管理。系统不但含

10、有书店中日常项目的信息,而且还包含了对信息的查询检索功能。用户权限主要任务是提高系统安全性和使用性,为系统提供良好的维护,如用户管理可以为用户提供权限服务。信息化产业已成为当今世界经济和社会发展的大趋势。因此,以现代信息技术为支撑,以信息人才为依托,充分挖掘信息资源,建立图书管理信息(系统),促进书店管理信息化、科学化、规范化,势在必然。1.2 书店信息化管理现状和意义1.2.1 书店信息化管理的现状与发展趋势我国目前开发的书店模式主要有两种:一种是B/S模式,一种是C/S模式,对于大型的书店来说,采用B/S模式比较合适,应用也很广泛,但是它也存在一些弊端,譬如说安全性就得不到很好的保障,如果

11、读者想要买书的话就必须得上网,虽然很方便,但仍有部分读者不太适应这种模式,而且大部分的书店还是中小型书店,对于他们来说采用B/S模式的书店系统就没有太大必要了,所以采用C/S模式开发的单机版书店管理系统会比较合适,而且会占很大一部分市场,它的安全性和保密性也有很好的保障。目前还有很多小型书店还在采用手工管理,据了解中小型书店对于网络仍然存在一些不信任,觉得网络很虚幻,不安全,C/S单击版的书店管理系统对于中小型书店更安全,更合适。对于我们现在正处在快速发展的今天来说,这样原始的管理肯定是满足不了日常的工作需求,更新工作方式,提高工作效率是社会发展的必然。1.2.2 书店信息化管理的意义 1)

12、信息化可以规范操作,提高工作效率信息技术本身要求数据的规范化,不规范的数据难以实现计算机作业,通过人机界面的技术处理,可以有效地规范数据,提高了信息加工处理和分析的效率。 2) 信息化管理可以减少工作人员,减少书店的投入在很多的手工管理的书店里,有很多的工作人员,对于中小型书店来说,这种大量的投入是不经济的,对于一个懂得操作电脑的操作人员来说就可以完成好几个人的工作,这就大大的降低了成本。1.3 书店管理系统的关键技术分析 1.3.1 Java Swing 简介Swing是一个用于开发Java应用程序用户界面的开发工具包1。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的

13、外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。图形用户接口( GUI )库最初的设计目的是让程序员构建一个通用的 GUI ,使其在所有的平台上都能够正常的显示。但是比较遗憾的是 AWT 产生的是在各系统看来都同样欠佳的图形用户接口, JAVA1.2 为老的 java1.0 AWT 添加了java 基础类( JFC ),这是一个被称为 “Swing” 的 GUI 的一部分。 Swing 是第二代 GUI 开发工具集, AWT 采用了与特定平台相关的实现,而绝大部分 Swing 组件却不是。 Swing 是构筑在 AWT 上层的一组

14、 GUI 组件的集合,为了保证可移植性2,它完全用 Java 语言编写,与 AWT 相比, Swing 提供了更完整的组件,引入了许多新的特性和能力。 Swing 提供了更多的组件库,如: JTable , JTree , Jcombox 。 Swing 也增强了 AWT 中组件的功能。正是因为 Swing 具备了如此多的优势所以我们以后在开发中都使用 Swing 。 JComponent 类是 Swing 组件的基类3,而 JComponent 继承自 Container 类,因此,所有的 Swing 组件都是 AWT 的容器。1.3.2 Java JDBC 简介JDBC是一种可用于执行SQ

15、L语句的JavaAPI(Application Programming Interface,应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员和数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问Oracle,写另一个程序访问MySQL,再写一个程序访问SQL Server。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此4,使用Java编写的

16、应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“一次编写,处处运行”。Java具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。 1.3.3 Java 三层架构在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。三层结构原理:3个层次中,系统主要功能和业务逻辑都在业务

17、逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。表示层位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。业务逻辑层业务逻辑层(Business

18、 Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在Patterns of Enterprise Application Architecture一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。业务逻辑层在体系架构中的位置很关键

19、,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实

20、现业务逻辑之外留给设计师的任务。数据层数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。 1.4 课题来源、主要研究内容、目的及意义1.4.1 课题来源本选题来源于安徽新华学院2009年毕业设计课题。主要内容包括是书店管理系统的建设与开发。自2009年初开始,本人作为项目的开发人员,参与了项目的前期准备、立项、需求分析、系统分析与设计、编码、测试

21、、验收等工作,主要负责软件需求、系统分析、软件设计与编码等工作。1.4.2 主要研究内容书店管理系统是针对目前中小型书店的实际需求进行充分的行业调研基础上,进行结构设计和后台开发。针对书店日常管理,开发一个书店管理系统。即可以合理的管理书店的日常操作,提高工作效率; 我在该项目中承担所有模块的开发,主要包括用户的登录和注册、用户的管理、供应商的管理、图书信息的基本管理、图书的采购、销售和库存管理、数据库的备份和恢复,用户密码的修改等等。1.4.3 本课题研究的目的及意义在信息社会中,信息的获取、处理、交流和决策都需要高质量的计算机软件来完成。传统的科研管理系统主要是基于C/S(客户机/服务器)

22、模式,随着Internet的发展,这种模式越来越不能适应网络平台上的新的应用的要求。采用先进的、开放的 B/S体系结构,应用系统基于Web技术开发,可极大地提高管理效率。既能实现对科研信息的高效管理和控制,又能满足决策者对科研活动的宏观管理需要。近些年随着社会发展迅速,书店的日常操作已经变得越来越繁琐。原始的手工管理无法满足这种日益增长的趋势。在这种情况下,原有管理的缺点日益显现,并开始影响管理工作的效率。书店管理的水平将直接影响书店的日常营销效率。加之管理项目的繁多,建立一个适合且完整的书店管理系统将势在必行。书店管理系统的开发成功将满足书店日常工作的需要,改变原有手工管理的模式,提高书店管

23、理工作的效率,为书店的发展助一臂之力。1.5 论文章节第一章首先论述了当前中小型书店的管理的现状,以及书店信息化管理的优势;然后探讨了在开发书店管理系统涉及的几个关键技术;最后阐述了课题的来源及主要研究内容,课题研究的目的和意义等。第二章对书店管理系统进行了可行性分析和需求分析,设计系统的功能模块图,用例图。第三章对书店管理系统进行了分析与设计,包括域模型的设计、数据模型设计、持久层的设计、逻辑层组件的设计等等。第四章给出了系统的实现,为方便用户使用提供了直观的展示。第五章总结与展望对论文的主要工作和取得的成果进行了总结,对论文存在的不足和今后的研究方向与内容进行了展望。第一章 绪论第二章 书

24、店管理系统需求分析第三章 书店管理系统的设计第四章 书店管理系统的实现第五章 结论与展望图1.1本文的结构图1.6 小结本章介绍了书店管理系统的基本概念,研究现状与发展动态,给出了书店管理系统采用的技术与方法,阐述了本文的项目背景、课题来源、研究内容、目的和意义。第2章 需求分析2.1 需求分析概述需求分析5是整个软件开发过程的指南,是软件开发人员开发出符合用户要求的软件的基础。需求分析为用户和软件开发者双方对该系统的初始框架有一个共同的理解,使之成为整个项目开发工作的基础。2.2 书店管理系统需求背景书店管理系统主要要满足以下三个方面需求:第一,书店工作人员通过计算机来管理各类图书,进行图书

25、分类编号,调整图书结构,增加图书库存,适应读者的需求。第二,工作人员对读者的需求情况能作好全面的掌握,及时得到历史销售记录。第三,也是书店的核心工作,对图书的销售管理。2.3 系统功能结构设计 1.用户管理该用户管理模块中主要用户有两种:营业员和供应商,在该模块中只有系统管理员才能操作该模块,其他操作人员没有权限操作,主要完成对营业员和供应商基本信息的增、删、改、查。2.图书管理 该模块主要有两个子模块:图书类别管理和图书管理,图书类别管理主要是要对书店购买的图书进行分类,这样便于日后的管理工作,图书管理主要完成图书基本信息的增、删、改、查。3.采购管理 该模块中主要有三个子模块:图书采购管理

26、,退书管理,价格调整,该模块主要有采购人员进行管理,其他操作人员无权管理,图书采购管理主要实现对图书的采购,如果采购人员发现有些书不想订购了,也可以利用退货管理来完成此功能,一定的时间内图书的价格可能会发生波动,价格调整主要是完成此功能。4.销售管理 该模块中主要有三个子模块:销售管理,退书管理,销售查询,销售人员对各类图书的销售和退书情况进行记录,也可以查询在某段时间内某种图书的销售情况。也可以查看所有图书的销售情况。5.库存管理 该模块主要有三个子模块:库存管理,库存盘点,库存报警,该模块主要由库存管理人员来操作,库存管理主要可以查看库存的总量,某种图书的现存数量。库存盘点主要可以查看某种

27、图书在某段时间内的销售情况和库存情况。当库存某种图书的数量小于3本时,就会将该书的信息显示出来,告诉管理人员要购买此图书了。6.系统设置 该模块主要有四个子模块:数据库备份,数据库恢复,修改密码,系统退出。数据库备份和恢复主要是了防止数据库中的数据受到破坏,可以随时进行备份和恢复。操作人员也可以对自己的密码进行修改。当操作人员想要退出书店管理系统时可以单击退出系统菜单。2.4 系统功能结构图书 店 管 理 系 统用户管理图书管理采购管理销售管理库存管理系统设置 图2.1 系统功能结构模块2.5 书店管理系统的用例图设计参照书店管理系统的需求,系统的主要用例图中包括有管理员、采购员、前台营业员和

28、库存管理员。2.5.1 管理员功能要求:本系统管理员可以对所有的模块进行操作。2.5.2 操作人员的功能要求: 采购人员,销售人员,库存管理人员只能操作他们自己的模块,其他模块都没有权限操作6,其用例图如下: 图2.2 管理员-用例分析图2.3 采购人员-用例分析图2.4 销售人员-用例分析图2.5 库存管理人员-用例分析2.6 系统流程图登录图书类别信息添加图书基本信息添加订购单信息添 加图书库存信息入库图书的销售销售销售查询查询注册注册图2.6书店管理系统流程图2.7 小结本章首先对需求分析的概念做了简述,然后根据系统的需求背景和可行性分析,设计了书店管理系统的基本功能模块,并给出系统的功

29、能结构图、用例图,为本系统的设计指明方向。第3章 系统的设计3.1 书店管理系统架构设计书店管理系统架构设计遵循多层次的架构设计原则,从上到下依次为表现层、业务逻辑层、模型层和数据访问层,系统层次架构模型如图3.1所示。表现层业务逻辑层模型层数据访问层依赖关系逐渐减弱依赖关系逐渐减弱数据库层图3.1书店管理系统的层次架构模型在本系统中,表现层用Java图形用户界面(GUI)实现,然后表现层调用业务逻辑层中的代码,所有的判断都放在业务逻辑层,而数据层(DAO)层主要封装了连接数据库和对数据库操作的一些代码,业务逻辑层只管调用数据访问层中的数据,具体实现在业务逻辑层并不关心。VO/PO为在各层次间

30、传递数据的JavaBean。VO也就是值对象或者说数据传输对象,主要用于表现层;PO持久层对象,主要用于表达实体模型数据。书店管理系统架构模型图如图3.2所示。 GUIBUSINESSDAO 图3.2 书店管理系统架构模型图3.2 业务实体设计一个系统的业务实体在内存中表现为实体域对象,在数据库中表现为关系数据,实现业务实体包括设计域模型1、创建域模型实体对象和设计关系数据模型。而如何在自定义框架中设计通用数据操作和规范业务实体呢?无论你习惯将自己的程序分为多少层来设计,但是这些都是细分经典的MVC模式7。而这个数据操作与业务实体其实就相当于MVC中的Model。对于业务实体的设计,有的人喜欢

31、用XML进行描述,有的人喜欢用类。前者的灵活性很好,对于多变的业务逻辑来说,前者是个不错的方案。但该系统选择后者,这样一来效率可以有一定的提高,设计上也更加简便一些。下面通过一张图(图3.3)来概括的描述一下数据操作与业务实体的关系: DatabaseDB ConnectParameterConmandTest业务实体类 业务实体类业务实体类业务实体类数据操作与业务实体数据操作 图3.3 数据操作与业务实体的关系图由上图可以看出,不同的业务实体拥有相同的父类,通过该父类,可以让所有的业务实体都具有最重要也是最基本的数据库连接、数据操作、以及性能优化等功能。各个业务实体直接又丝毫没有联系,这样一

32、来当一个业务发生改变时完全不会影响到其它业务的运行,即便有联系有影响,那也是在业务逻辑中应该规定的内容。3.2.1 业务实体概述业务实体(Business Entity)代表业务角色执行业务用例时所处理或使用的“事物”。一个业务实体经常代表某个对多个业务用例或用例实例有价值的事物8,因此,业务实体对象的生存期相当长。通常,业务实体代表产品的文档或重要组成部分。有时候,业务实体也代表一些非实体的对象,如关于市场或客户的重要信息。例如,饭店中的业务实体有菜单和饮料;而在机场,机票和登机牌是重要的业务实体,在书店管理系统中,图书是本系统中重要的业务实体。我们只需将业务对象模型9中其他类必须引用的那些

33、现象建模为业务实体。而其他“事物”可以建模为相关类的属性,或只在这些类中进行文字描述。3.2.2 书店管理系统的数据库设计在本系统中共设计了7张数据表10,员工表(tb_employee),供应商表(tb_supplier), 图书类型表(tb_bookType),图书信息表(tb_book),采购订单表(tb_order),销售表(tb_sell),库存表(tb_store),具体表结构如下:表3-1员工表(tb_employee)字段名类型说明empIDVarchar(16)编号,主键empUsernameVarchar(20) 用户名empPasswordVarchar(20) 密 码E

34、mptypeInt 类 型empRealNameVarchar(20) 真实姓名empAgeInt 年 龄empidentityCardVarchar(20) 身份证empSexVarchar(2) 性 别empPhoneVarchar(20) 电话号码empAddressVarchar(100) 家庭住址empHireDatedatetime 受雇日期SalaryInt 薪 水表3-2供应商表(tb_ supplier):字段名类型说明SupIDvarchar(16)编号,主键SupNamevarchar(20) 用户名SupAgevarchar(20) 年 龄SupSexInt 性 别Su

35、pPhonevarchar(20) 电话号码SupAddressInt 家庭住址表3-3图书类型表(tb_ bookType):字段名类型说明idTypevarchar(16)编号,主键namevarchar(20) 类型名称表3-4图书信息表(tb_book):字段名类型说明bookIdvarchar(16)编号,主键ISBNvarchar(20) ISBNbookNamevarchar(20) 书 名idTypeInt 类 型Authorvarchar(20) 作 者PublisherInt 出版社pubDatevarchar(20) 出版日期Pricevarchar(2) 价 格Disc

36、ountvarchar(20) 折 扣表3-5采购订单表(tb_order)字段名类型说明orderedvarchar(16)编号,主键SupIDvarchar(20) 供应商编号bookIdvarchar(20) 图书编号EmpIDInt 员工编号orderNumvarchar(20)订购数量backNumInt退还数量orderDatevarchar(20) 订购日期Orderpricevarchar(2) 价 格表3-6销售表(tb_sell):字段名类型说明EmpIDvarchar(16)员工编号bookIdvarchar(20) 图书编号sellNumvarchar(20) 购买数量

37、sellpriceInt 销售价格sellDatevarchar(20) 销售日期表3-7库存表(tb_store):字段名类型说明bookIdvarchar(16)图书编号storeNumvarchar(20)库存数量 2) 实体模型中存在的几种关系一对多关系和多对一关系理论上是一样的。Sell实体和Book实体存在一对多的关系,一张销售单对应着多本图书的信息。因此一对多和多对一是一样的概念。为了在实体中建立这种一对多的关系,设计过程中,在Sell实体中定义一个bookId类型的属性,这样就可以通过Sell实体获得相应的ProjectInfo实体。部分代码如下:/*基本的get()和set(

38、)方法*/public String getBookId() return BookId;public void setBookId(String bookId) BookId = bookId;Overridepublic boolean equals(Object obj) if(obj = null) return false; if(this = obj) return true; if(!(obj instanceof Sell)return false; else Sell sell = (Sell)obj; if(this.getBookId().equals(sell.getB

39、ookId()return true; else return false; Overridepublic int hashCode() return this.getBookId().hashCode();3.3 持久层的设计在介绍持久层设计之前,首先要引进一种模式,叫DAO模式。3.3.1 DAO模式1) 有关DAO模式的介绍业务对象只应该关注业务逻辑,不应该关心数据存取的细节。数据访问对象必须实现特定的持久化策略,这样就抽出来了DAO层11,作为数据源层,DAO是Data Access Object数据访问接口,数据访问故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。用一个DA

40、O接口隐藏持久化操作的细节,这样使用的最终目的就是让业务对象无需知道底层的持久化技术知识,这是标准 j2ee 设计模式之一。2) DAO的实现DAO实现了用来操作数据源的访问机制。依赖于DAO的业务组件为其客户端使用DAO提供更简单的接口。DAO完全向客户端隐藏了数据源实现细节。由于当低层数据源实现变化时,DAO向客户端提供的接口不会变化12,所有该模式允许DAO调整到不同的存储模式,而不会影响其客户端或者业务组件。重要的是,DAO充当组件和数据源之间的适配器。 下图(图3.5)是表示DAO模式中各种关系的类图:获取/修改创建/使用BusinessObjectDataAccessObjectD

41、ataSourceValueObject使用封装图3.5 DAO模式中各种关系的类图 其中BusinessObject(业务对象)代表数据客户端。正是该对象需要访问数据源以获取和存储数据。DataAccessObject(数据访问对象)是该模式的主要对象。DataAccessObject抽取该BusinessObject的低层数据访问实现,以保证对数据源的透明访问。BusinessObject也可以把数据加载和存储操作委托给DataAccessObject。DataSource(数据源)代表数据源实现。数据源可以是种数据库。valueObject(值对象)代表用做数据携带着的值对象。DataAccessObject可以使用值对象来把数据返回给客户端。DataAccessObject也许会接受来自于客户端的数据,其中这些用于更新数据源的数据存放于值对象中来传递。在一般大型的桌面系统开发中,都会设计逻辑层组件。每个组件都定义了它们的接口和相应的实现类,使得一个业务方法可以调用若干个DAO对象的方法,简化了代码,增加代码的可读性。 3.4 逻辑层的设计对应持久层的设计,我们坚持的仅仅是对数据库的封装13,即任何与数据库相关的操作均封装在持久层中,任何与数据库无关的功能不能放到持久层中。持久层的功能只是将对象

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号