基于J2ME与SSH的学院图书管理系设计的开发与实现.doc_第1页
基于J2ME与SSH的学院图书管理系设计的开发与实现.doc_第2页
基于J2ME与SSH的学院图书管理系设计的开发与实现.doc_第3页
基于J2ME与SSH的学院图书管理系设计的开发与实现.doc_第4页
基于J2ME与SSH的学院图书管理系设计的开发与实现.doc_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PINGDINGSHAN UNIVERSITY 毕业论文(设计)题 目: 基于J2ME与SSH的学院图书管理系统院 (系): 软件学院 专业年级: 软件工程 2008级 姓 名: 学 号: 081530234 指导教师: 杨照峰 讲 师 2011年09月08日原 创 性 声 明本人郑重声明:本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人承担。论文作者签名: 日 期: 关于毕业论文使用授权的声明本人在指导老师指导下所完成的论文及相关的资料(包括图纸、试验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属平顶山学院。本人完全了解平顶山学院有关保存、使用毕业论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权平顶山学院可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为平顶山学院。本人离校后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为平顶山学院。论文作者签名: 日 期: 指导老师签名: 日 期: 基于J2ME与SSH的学院图书管理系统摘 要21世纪人类全面进入信息时代,人类对信息的获取、传递、存储、处理、检索等的要求已越来越高。计算机在信息的检索、查询、处理等方面发挥出其巨大的优势,开辟了电子数据处理的新纪元。随着全球社会信息化、网络化建设的兴起,传统的手工图书管理模式和操作方法已不能满足图书管理的公开化、方便化、大众化、远程化的要求,开发一个智能化、网络化、信息化的图书管理系统势在必行。图书管理系统是典型的信息管理系统,主要实现图书管理方面的网络化、无纸化,从而提高使用者的工作效率,使图书管理更加快捷,使图书管理的工作流程更加的科学,使用户的查询更加的方便。本论文根据我校图书管理的需要,选用了MVC设计思想(Model-View-Controller)实现系统分层的开发,并采用Struts2、Spring、Hibernate框架设计了一个图书管理系统。该系统为图书管理提供了一个完整的平台,读者只需利用该管理系统就可方便快捷的完成图书的查询、借阅等功能,图书管理员更可以使用此系统对图书、读者进行有效的管理。本论文对Struts2、Spring和Hibernate框架进行了详细研究和分析。Struts 的MVC设计模式可以使设计的逻辑变得很清晰。其具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。在中间层主要运用Spring技术。它的IOC(Inversion of Control,反向控制)和AOP (aspect-oriented programming)可以使产品在最大限度上解藕。因为它模块化的很好,允许开发者根据自己的需要选择使用它的某一个模块。在数据服务层主要运用hibernate框架。它是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。这种框架模式极大地提高了软件体系结构的灵活性、可扩展性和可维护性,实现了应用系统的敏捷开发。本论文按照软件开发的生命周期论述了系统的需求分析、数据库详细设计系统功能划分、各个窗体的设计和系统实现的全过程。最后,对本研究进行了总结,并提出了进一步的工作展望。关键词: MVC,Struts2,Spring,Hibernate,图书管理系统College based on J2ME and SSH library management system AbstractEntered the 21st century information age, human information acquisition, transmission, storage, processing, retrieval and other requirements have been increasing. Computer information retrieval, query, process, and played out its huge advantage, opened up a new era of electronic data processing. With the global information society, the rise of network construction, the traditional manual method of library management and operation mode can not meet the open book management, convenient, popular, long-range requirements, development of an intelligent, network, information of the library management system is imperative. Library management system is a typical information management system, the main library management, network-based, paperless, improve user productivity, make more efficient library management, library management workflow to a more scientific, so the user query is more convenient.The paper according to my school library management needs, use the MVC design (Model-View-Controller) to achieve the development of the system layer, using Struts2, Spring, Hibernate framework for the design of a library management system. The system provides a complete library management platform, readers can simply use the convenient and efficient management system to complete the query books, lending and other functions, librarians can also use this system for books, readers and effective management.The paper on Struts2, Spring and Hibernate framework for the detailed study and analysis. Struts MVC design pattern can make the design of the logic becomes clear. It has modular components, the advantages of flexibility and reusability, while simplifying the MVC-based web application development. The main use of Spring in the middle layer technology. Its IOC (Inversion of Control, Inversion of Control) and AOP (aspect-oriented programming) can make the products to the greatest extent decoupled. Because it is very modular, allowing developers to choose according to their needs its a module. The main use of the data service layer hibernate framework. It is an open source object-relational mapping framework, it had a very lightweight JDBC object package so that Java programmers can use arbitrary object programming thinking to manipulate the database. Such a framework model greatly improves the flexibility of software architecture, scalability and maintainability, to achieve the application of agile development.According to the paper discusses the software development life cycle of the system requirements analysis, detailed design of the database system, function, design and systems in various forms to achieve the whole process. Finally, a summary of the study, and proposed further work prospects.Key Words:MVC, Struts2, Spring, Hibernate, library management system目 录1 绪 论11.1 课题研究背景及意义11.2 国内外研究状况21.3 论文的主要工作31.4 论文的组织安排42 相关技术研究62.1 Web应用的分层架构62.2 MVC模式62.3 Struts框架和Hibernate技术72.3.1 Struts概述72.3.2 Struts体系结构82.3.3 Hibernate体系结构. 92.3.5 Struts和Hibernate框架的整合102.4 SQL Server数据库122.5 开发平台与运行环境133 系统分析和设计123.1 系统需求分析123.1.1系统工作流程分析123.1.2课程申报网站的问题分析143.1.3系统的功能需求分析143.1.4系统的性能需求分析153.1.5系统的数据库需求分析153.1.6系统建模163.2 系统详细设计173.2.1系统设计目标173.2.2系统的功能模块设计183.2.3系统的架构设计193.2.4系统的数据库设计214 系统实现244.1 系统架构层次实现244.1.1表示层的实现244.1.2业务逻辑层的实现254.1.3持久层的实现264.2 系统部分功能实现274.2.1课程申报模块实现274.2.2课程审核模块实现294.2.3公告信息模块实现304.2.4教学团队模块实现315 系统测试335.1 Web系统测试理论335.1.1 功能测试335.1.2 性能测试345.1.3 可用性测试355.1.4 客户兼容性测试365.1.5 安全性测试365.2 本系统的测试方式375.2.1 功能、可用性测试375.2.2 性能测试375.3 小结416 结束语426.1 总结426.2 展望42附 录43参考文献49致 谢501 绪 论1.1 课题研究背景及意义当今时代是飞速发展的信息时代。人类社会面临知识经济和信息社会的急剧变革,世界各个角落的人们都强烈感受到新时代的冲击与震撼。中国在迈向新战略目标的进程中,提出迎接知识经济时代,建设我国国家创新体系,提高国家创新能力的奋斗目标。图书馆作为社会重要的信息资源基地,国家信息基础设施和资源的提供者,应成为国家创新信息服务体系的组成部分,发挥依靠基地的作用。近年来,随着社会的发展,很多地方的图书馆积累了数万册图书,特别是各大高校图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍的增加,面对庞大的信息量,传统的人工方式管理会导致图书管理上的混乱,浪费过多的人力与物理,还会增加图书管理的管理费用,从而使图书馆的负担过重,影响到整个图书馆的运作和管理。因此,很有必要开发一个智能化、网络化、信息化的图书管理系统势。与传统的手工管理图书的方式相比,图书管理系统具有许多优点。1、 检索速度快,效率高。由于图书馆的藏书种类多,数量多,在传统的图书馆中,要将这些大量的图书准确地分门别类并进行快速检索是很困难的。而图书管理系统就能很快的查询图书的相关信息,极大地提高检索的效率。2、 能够很容易的完成借书还书工作。图书馆中一般借还书的读者很多,读者频繁的借书还书,会带来大量的图书借阅,图书归还等的登记。更有甚者,还会出现图书超期、遗失、损坏等情况,这往往是人工操作难以胜任。而图书管理系统可以帮图书管理者将繁琐的借书、还书工作以电子化的形式完成,极大地减少图书管理员的工作量3、 图书的统计更容易,藏书更新更及时。 图书馆的图书因根据科学技术的发展和教学工作的需要及时添加和更新。然而由于馆藏图书数量及种类越来越多,加上自然损耗,人为破坏,如果用手工来准确地统计这些图书简直就是不可能的,藏书的更新也不能及时的完成。如果用图书管理系统很容易的就能统计图书的种类及数量,以便于及时更新馆藏的图书。4、 管理系统能使图书信息对读者开放。 传统手工管理图书模式相对封闭,馆藏图书信息对读者不透明,不利于查找所需图书和资料。这样既不能满足读者对信息的需求,又造成馆藏图书使用率低。与传统的手工管理方式相比,管理系统即能方便读者查阅信息,充分利用图书资源,又能提高图书的管理质量。5、 图书管理系统安全性高。图书管理系统使用计算机进行信息控制,不仅提高了工作效率,而且极大的提高了安全性。平顶山学院作为一所发展中的高等院校,是正在迅速崛起的新生力量,它为国家输送着应用型人才,具有较强的发展潜力。对其图书馆进行信息数字化建设,不但能更加方便学校的图书管理,也更能为师生提供一个更加完善的文献阅览环境,促进学校科研及教学方面的快速发展。1.2 国内外研究状况国外图书馆自动化系统的起源比较早,可以追溯到1954年,当时,美国海军兵器中心(NOTS)就在IBM 701机器上进行了单元词匹配检索。1958年,IBM的研究员卢恩进行了著名的自动抽词试验,开创了自动分类、自动标引、信息检索等多个与图书馆学情报学密切相关领域之先河1,2。从20世纪70年代末80年代初,图书馆自动化系统由单一功能系统转向图书管理集成系统3。到了90年代中后期,国外图书馆自动化系统研发开始蓬勃发展。Window图形用户界面的广泛应用以及一系列诸如Web技术、数据库技术、java技术都是这一期间随着Internet的发展而发展起来的。目前国外已有许多较为成熟的图书管理系统,如Innovative公司推出的INNOPAC系统,SlRSI公司推出的Uninicom系统,Epixtech公司推出的HORIZON系统,Exlibris公司推出的ALEPHSOO系统等,它们都有比较长的研究应用历史,在读者服务、业务及自动化管理方面有比较突出的特点。国内的计算机图书管理技术起步较晚,始于上世纪70年代,但随着对外改革的进一步发展,中国公共组资料换网、全国数字资料网和中国教育科研网的建成,为图书馆网络化的发展提供了良好的条件,尤其是20世纪末,国内图书馆软件研究开发及应用发展非常快,北邮电信的MELINETST系统、江苏汇文公司的LIBSY2000系统、国家图书馆的文津图书管理系统、重庆大学图书馆的图腾V7.0系统、上海交通大学包广龙图书馆的UNILS系统(HP3000小型机组)、北京大学图书馆的PULIAS系统(VAXN/750小型机)、广东中心图书馆的图书管理系统(IBMAS400)等陆续建成并投入使用。这些图书管理系统都具有数据处理量大,图书管理功能完备的特点,但是这些系统都采用大型数据库和其先进的开发平台,后台硬件支持多为小型机或小型组机,软硬件投资较大。对于普通类高校的图书馆建设来说,应用上述软件在经济上和规模上有一定的实际困难。首先是这些中小型图书馆经费相对缺乏,难以承受大规模软硬件投资;其次,中小型图书的管理功能相对简单,对记录的数据项要求较少,大而全的图书管理系统对其使用来说并不实用;再次,中小型图书馆一般缺乏高级计算机类技术人员,系统的使用维护具有相当困难。因此有必要针对中小型图书馆管理使用情况开发适合其实际状况的中小型图书管理系统。另外已有的一些中小型图书馆如鞍师高职院图书馆、大连商务学院的图书馆、西昌学院的图书馆、平顶山学院的图书馆等的功能已基本完备,但也还有一些问题需要完善,如系统的开放性和先进性不是太好,系统的可维护性比较低等。高校图书馆是“国家信息基础设施”的重要组成部分,藏书丰富,是我国图书馆事业的三大支柱之一4。教学和科研是高等学校工作的中心环节,而教学和科研两个两个方面都离不开各种信息资料,离不开图书馆。所以图书管理系统的建设具有非常重要的现实意义,迫切开发适用于高等院校的中小型学院图书管理系统。1.3 论文的主要工作本文的内容是在总结当前信息管理的研究成果基础上,结合平顶山学院实际情况,分析原有系统的特征,从实际出发,研究并完成一套基于B/S的网上作业管理系统。具体内容如下:(1) 确定需求仔细研读平顶山网上作业管理系统开发的有关文件,深入体验网上作业管理的功能并结合平顶山学院的实际情况开发出新的网上作业管理系统。该系统需完成本系统包括三种用户:管理员用户、学生用户和教师用户,管理员登录之后可以管理学生用户信息、管理教师用户信息、管理留言板、管理公告等;教师登录之后可以查看修改个人信息、查看公告、上传资源、查看上传成功的资源文件、发布作业、查看发布成功的作业、接受作业以及查看留言板等;学生登录之后可以查看修改个人信息、查看公告、下载资源、下载作业、上交作业以及查看留言板等。由于使用者不一定十分精通计算机或网络的使用,因此,界面应十分友好,使用简便。(2) 设计总体框架在确定系统开发需求后,认真做好系统框架总体设计。系统框架不仅要反映作业管理系统网站建设的需求,而且要有科学性、先进性并易于实现。(3) 选择技术架构根据系统框架的设计,对整个系统的技术架构进行选择,本文采用多层设计结构,将Struts框架、Spring框架和Hibernate技术集合实现。(4) 主要功能设计本课题属于小型的作业管理系统。根据系统的用户需求进行功能模块的细分。管理员用户模块设计:管理员用户模块设计:管理员的主要管理图书信息以及读者信息。具体包括:图书信息的查询、修改、删除、增加,读者的查询、修改、删除、增加,读者对图书的借阅、续借、归还,读者留言和推荐信息的查询、回复和删除并维护系统安全等工作。(5) 进行系统数据库设计由于网络的公开性,在数据库的设计上应注重考虑安全问题,以保证数据不被恶意篡改或破坏,从而保证系统运行结果的正确性和可靠性。(6) 精品课程网站系统的实现在完成系统需求分析和数据库设计的基础上,本文应用四层设计结构,实现一套比较完整的图书管理网站系统。这是图书管理建设的目的,因此,这里应保证系统的可维护性、可扩展性和稳定性。1.4 论文的组织安排围绕以上内容,本文基于Struts2,Spring和Hibernate框架设计了一个精品课程网站系统。论文的结构安排如下:(1) 绪论该章主要介绍了图书管理系统网站的研究背景及意义,国内外研究现状及论文完成的主要工作。(2) 相关技术与工具研究该章对图书管理管理系统设计过程中用到的技术和开发工具进行较详细的说明,为项目的设计做技术支持。(3) 系统分析和设计该章在完成系统需求分析的基础上,对系统的架构、系统的功能和数据库进行设计。(4) 系统的实现该章对系统架构层次的实现和系统功能模块的实现做了详细说明。(5) 系统测试该章从功能、性能和客户端兼容性等方面进行测试。(6) 结束语该章对本论文做出总结,以及对图书管理系统的应用展望未来。2 相关技术研究2.1 Web应用的分层架构在构建一个Web应用时需要考虑很多问题,比如:在哪里处理用户交互;在哪里处理业务逻辑;在哪里对应用数据进行持久化;以及怎样选择这些层的实现技术和设计方案才能达到各层间的松耦合并确保应用系统具有良好的扩展性等。所以,对于一个实际应用来说,架构设计的选择就显得尤为重要。软件工程中我们提倡一个软件应该是“高内聚,低耦合”,因为满足这种的软件才会有易于控制、可扩展、可维护等特点,而分层的目的就是对应用的逻辑功能进行划分,使每层在完成自己功能的同时,不影响其它层的实现。所以分层设计是一个很好的架构方案。(1) 表示层提供用户交互接口,对用户的请求做出响应,实现技术有多种。(2) 业务逻辑层实现各种业务逻辑功能,是应用的核心所在,在Java中常用的有JavaBeans,EJB等技术。(3) 持久层实现数据访问细节,提供业务数据的保存,更新,删除和查询等操作。(4) 数据库层完成业务数据的存储和管理功能,常用的有:ORACLE、SQLSERVER、MYSQL等。将系统进行如上的分层,从理论上可以让每一层各司其职,表示层提供友好的用户交互界面、业务逻辑层处理具体的业务、持久层处理数据库的读取存储。将一个复杂的应用领域细分成诸多最小的单元,然后进行串联、组合,使得在实现一个应用领域的过程中,最小单元达到最大复用。软件产品的后期运行维护是个巨大的工程,单纯从前期开发时间上考虑其开发效率是不理智的,也是不公平的。对于传统的ASP和 PHP等脚本站点技术,将整个站点的业务逻辑和表现逻辑都混杂在ASP或PHP页面里,从而导致页面的可读性相当差,可维护性非常低。即使需要简单改变页面的按钮,也不得不打开页面文件,冒着破坏系统的风险。但采用严格分层J2EE架构,则可完全避免这个问题。对表现层的修改即使发生错误,也绝对不会将错误扩展到业务逻辑层,更不会影响持久层。因此,采用J2EE分层架构,即使前期的开发效率稍微低一点,但也是值得的。 软件行业的技术更新很快,虽然软件行业的发展不快,但小范围的技术更新特别快。一旦由于客观环境的变化,不得不更换技术时,如何保证系统的改变最小呢?答案还是选择优秀的架构。 在传统的Model 1的程序结构中,只要有一点小的需求发生改变,将意味着放弃整个页面。或者改写。虽然前期的开发速度快,除非可以保证以后永远不会改变应用的结构,否则不要采用Model 1的结构。 采用Hibernate作为持久层技术的最大的好处在于:可以完全以面向对象的方式进行系统分析、系统设计。 DAO模式需要为每个DAO组件编写DAO接口,同时至少提供一个实现类,根据不同需要,可能有多个实现类。用Spring容器代替DAO工厂 通常情况下,引入接口就不可避免需要引入工厂来负责DAO组件的生成。Spring实现了两种基本模式:单态模式和工厂模式。而使用Spring可以完全避免使用工厂模式,因为Spring就是个功能非常强大的工厂。因此,完全可以让Spring充当DAO工厂。 由Spring充当DAO工厂时,无须程序员自己实现工厂模式,只需要将DAO组件配置在Spring容器中,由ApplicationContext负责管理DAO组件的创建即可。借助于Spring提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用DAO实例。2.2 MVC模式为了达到软件设计的“高内聚,低耦合”的目标,Web开发应用都采用一种以扩展、易于分配资源的模式,应用最广泛的就是MVC分层架构设计模式。在MVC模式中,应用程序被分为三个模块:模型(Mode)-视图(View)-控制器(Controller),它们分别负责不同的任务。其中模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。视图是应用程序中与用户界面相关的部分,使用户看到并与之交互的界面。控制器的工作是根据用户的输入,控制用户界面数据显示和更新model对象状态,具体如图2-1所示。 图2-1 MVC主要功能图大部分web应用程序都是用过程化语言来创建的。把数据库访问查询的数据层代码和像Html这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,这需要精心的计划和不断地尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给开发者带来的好处是毋庸置疑的。2.3 Struts2框架、Hibernate框架和Spring技术2.3.1 Struts2概述Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来。总之, Struts 的出现使得 Web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。 2.3.2 Struts体系结构Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分5。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts有自己的控制器,同时整合了其他的一些技术去实现模型层和视图层。在模型层,Struts可以很容易与数据访问技术相结合,包括EJB、JDBC和Hibernate。在视图层,它能够与JSP、XSL等这些表示层组件相结合。Struts框架的体系结构与各个部分的工作原理如下图2-2显示。ClientBrowserControllerServletViewJSPEventHTTP RequestUpdateForwardBusiness Logic ActionModel Application StateStruts-config.xlmmlGetDispatch 图2-2 Struts体系结构图下面让我们从MVC的模型、视图、控制器角度来看Struts的体系结构和工作原理:(1) 从模型(Mode)角度在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组ActionFormBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的Bean调用,比如购物车Bean,它拥有用户购买商品的信息,可能还有Checkout()方法用来检查用户的信用卡,并向仓库发订货信息。(2) 从视图(View)角度视图主要由JSP建立,Struts还包括扩展自定义标签库(Taglib),可以简化创建完全国际化用户界面的过程8。目前的标签库包括:Bean Tags、Html Tags、Logic Tags、Nested Tags等。(3) 从控制器(controller)角度在Struts中,基本的控制器组件是Action Servlet类中的实例Servlet,实际使用的Servlet在配置文件中由一组映射(ActionMapping类)进行描述。对于业务逻辑的操作则主要由Action、ActionMapping和ActionForward这几个组件协调完成,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。Sruts-config.xml文件配置控制器。2.3.3 Hibernate体系结构 Hibernate是一个面向Java环境的对象/关系数据库映射工具,是 JDBC的轻量级对象的封装9。Hibernate是按照LGPL许可证发布的开放式源代码应用程序,是用于Java的高性能的对象/关系持久性和查询服务。Hibernate可能不是最好的解决方案,但对于那些在基于Java的中间层应用中实现面向对象的业务模型和商业逻辑的应用Hibernate是最有用的。为了用Hibernate进行应用程序的持久化,需要在应用程序包中放置一个配置文件,以便Hibernate能正确的完成初始化的配置。持久层是应用程序与数据库的隔离舱10,它封装了应用程序与数据库交互的底层细节,当应用程序需要与数据库交互时,只需要给对象发送相应的消息就可以了,无需关心如何连接具体的数据库系统、如何实现数据的读取和保存、如何实现对象的属性和数据字段之间的映射等持久性对象的实现细节问题11。例如:发送保存对象的消息save(),就可以把持久对象Object的数据保存到数据库中。这样,应用程序开发人员既可以使用和管理面向对象的数据,又不比关心数据存储的底层实现细节。持久层实现的另一个主要功能是封装变化,它允许数据库管理员移动数据表、重命名表、重命名表的属性等,这时通过修改O/R Mapping的关系就可保持持久对象的独立性,从而使应用程序远离了数据库变更所带来的影响,既实现应用程序与数据库的松散耦合,又保存了应用程序的独立性。Hibernate体系结构图如下图2-3所示: 图2-3 Hibernate体系结构图图2-3可以很清楚地看出Hibernate的持久化服务在一个数据库应用中的作用:应用程序通过Hibernate与数据库发生关系,对数据进行操作。而Hibernate自身通过properties和类的映射文件(XML Mapping)完成类到数据库的映射。Application可以对持久化的对象类直接访问数据库,而不是必须使用JDBC和SQL进行数据的操作。2.3.4 Spring体系结构Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Sring具有许多优点:Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB;它还能能消除在许多工程中常见的对Singleton的过多使用;它降低了系统的可测试性和面向对象的程度;Spring通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要;通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯;Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring;使用Spring构建的应用程序易于单元测试;Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。Spring帮助我们解决许多问题而无需使用EJB。Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图所 Spring示: 组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:1、核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 2、Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 3、Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 4、Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。 5、Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 6、Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 7、Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE 环境(Web 或EJB)、独立应用程序、测试环境之间重用。2.3.5 Struts2,Spring和Hibernate框架的整合现在J2EE的开源框架多的数不清楚,目前比较流行的常用框架大概有struts,spring,hibernate,jsf,webwork,而 struts+spring+hibernate(SSH)这种轻量级架构被誉为“黄金组合”。spring和hibernate更是被许多人认为是未来五年内不会被淘汰的技术,犹如当年的struts,今天的开发中依然被广泛采用。典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 在此整合的架构中,通过Struts在Web层的应用,分离出了原来在JSP存在着的流程控制逻辑和业务逻辑实现,一个模块的流程控制逻辑被全部封装在相应的Action实现类中。同时,通过各种Struts标签库的应用,使得JSP页面的实现也变得非常简单。总之,SSH框架流程如下:首先是页面的jsp转化成请求servlet,然后调用struts的action,再由action调用service的业务方法,这些方法是用hibernate来现的,他们都是通过spring来管理的。hibernate负责底层数据的提供。这样将数据显示在页面就完成了请求的响应。2.4 MySQL数据库管理系统数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。MySQL软件是一种开放源代码软件。“开放源码”意味着任何人都能使用和改变软件。任何人都能从Internet下载MySQL软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。MySQL具有以下特点:1.使用C和C+编写,并使用了多中编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 3.为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多线程,充分利用CPU资源 5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名 7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径 8.提供用于管理、检查、优化数据库操作的管理工具 9.可以处理拥有上千万条记录的大型数据库与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 MySQL可以进行可视化操作,非常的方便。Navicat是一款快速、可靠的数据库管理工具,很受大家的欢迎。Navicat专门用来简化数据库管理并且减少管理成本,它旨在满足数据库管理人员、数据库开发人员以及广大中小企业的需要,它有一个很直观的GUI,可以让你安全便捷的创建、组织、访问以及分享信息。 对于MySQL来说,Navicat工具是一个强大的数据库管理和开发工具。它可以跟任何版本的MySQL数据库服务器(3.21版或者以上版本)一起工作,并且支持MySQL大多数最新的功能,包括Trigger、Stored Procedure、Function、Event, View和 Manage User等。Navicat Lite可以免费下载,但是仅适用于非商业活动。2.5 开发平台与运行环境 (1) 开发平台本系统中采用MVC的开发模式,并整合SSH2。J2EE的分层架构,是优秀的分层架构。它控制层依赖于业务逻辑层,但绝不与任何

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论