1、I基于 J2EE 的图书馆管理系统设计与实现摘 要随着计算机及网络技术的迅速发展,人们的工作效率大大提高,信息化管理在我们生活中所扮演的角色也越来越重要。而计算机信息处理系统更是改变了许多系统的经营管理。学校的图书馆作为学生获取知识的一个重要学习场所,图书和学生借阅资料繁多,信息化管理更是必不可少。因而图书馆管理系统成为学校管理机制中的重要组成部分之一,通过对图书馆管理的日常运行的研究,开发了这套图书馆管理系统,以此代替原始的图书馆人工管理。本系统基于 J2EE 平台,采用 oracle 作为后台数据库,本文根据软件工程规范的要求,按照系统的需求分析、系统设计、系统实现与测试的顺序分别介绍了系
2、统的研究背景和研究现状,介绍了系统的业务需求、功能需求和非功能需求,给出了系统的软件架构、数据设计和各模块的详细设计,简述了书目查询、读者管理、新书管理、信息发布、图书借还模块的设计与实现,重点突出了个性化推荐模块的模型和算法实施,最后还实现了系统的三层软件架构和系统界面,并通过系统测试验证了系统给的可用性和适用性。图书馆管理系统为图书馆提供信息化的管理模式,简化了图书盘点和记录的流程,帮助管理人员更好地为读者服务。图书馆极大地减少人工成本、显著地提高工作效率,使图书馆的管理工作告别繁琐,实现图书馆图书的信息化管理。该系统的设计与实现体现了计算机信息化管理速度快、储存量大、可靠性强、查阅方便的
3、优势。关键词:图书馆;信息化管理;J2EE;OracleIIAbstractAlong with the computer and network technology rapid development, peoples work efficiency greatly improve, information management in our lifes role is becoming more and more important. And the computer information processing system is changed many system managem
4、ent. The school library as students obtain knowledge is an important learning place, books and student lending material is various, information management is essential. Therefore the library management system for school management mechanism in the important part of, through to the library management
5、 daily operation of the research and the development of the library management system, instead of the original library artificial management. This system is based on the J2EE platform, the oracle as backend database management system management system, in accordance with the requirements of the soft
6、ware engineering specifications in accordance with the needs of the system analysis, system design, system implementation and testing order introduces the research background and the status quo, the business needs of the system, functional requirements and non-public energy needs, to a system softwa
7、re architecture, data design and the detailed design of each module, briefly introduces the design and implementation of bibliographic query, reader management, books management, information release, books borrowed module, and highlights the model and algorithm implementation of personalized recomme
8、ndation module, and finally to achieve a three-tier software architecture of the system and the system interface, and system testing to verify the availability and applicability of the system. Library management system for the library to provide information management model, simplifies the inventory
9、 of books and records of the process, help managers to better service for readers. Library greatly reduce labor costs and significantly improve the work efficiency, make management of the library farewell trival, realize information management of library books. The design and implementation of the s
10、ystem reflects the computer information management system of speed and large storage capacity, reliability, access to convenient advantage. Keywords: Library; Information management; J2EE; Oracle III目 录1 绪论 .11.1 研究背景及意义 11.2 课题相关国内外研究现状 11.3 论文主要工作 31.4 论文组织结构 42 相关技术介绍 .52.1 J2EE 技术架构 .52.2 Struts
11、+Spring 框架 .72.2.1 Struts 框架 72.2.2 Spring 架构 .82.3 IBatis 数据框架 .82.4 Oracle 数据库 92.5 UML 语言 102.6 本章小结 103 系统需求分析 113.1 系统业务需求 .113.1.1 业务分析 .113.1.2 用例分析 .123.2 系统功能需求 .133.2.1 书目查询模块 143.2.2 读者管理模块 153.2.3 新书管理模块 163.2.4 信息发布模块 173.2.5 图书借还模块 183.2.6 个性化推荐模块 183.3 系统非功能需求 .203.4 本章小结 .214 系统设计 22
12、4.1 系统总体设计 .224.1.1 系统软件架构 224.1.2 系统拓扑结构 224.2 模块数据流设计 .23IV4.2.1 书目查询模块 234.2.2 读者管理模块 244.2.3 新书管理模块 254.2.4 信息发布模块 254.2.5 图书借还模块 264.2.6 个性化推荐模块 264.3 系统详细设计 .274.3.1 时序图设计 274.3.2 关键类图设计 314.4 系统数据库设计 .324.4.1 实体设计 334.4.2 数据表设计 384.5 本章小结 .415 系统实现与测试 425.1 系统实现的架构 .425.1.1 web 层实现 .425.1.2 业
13、务层实现 435.1.3 数据层实现 445.2 系统功能页面展示 .455.2.1 书目查询模块 455.2.2 读者管理模块 475.2.3 新书管理模块 485.2.4 个性化 推荐模块 495.3 系统测试 .505.3.1 测试环境和方法 505.3.2 系统功能测试 505.3.3 系统性能测试 525.3.4 验收测试 525.4 本章小结 .526 总结与展望 54参考文献 5511 绪论1.1 研究背景及意义在科学技术快速发展的今天,计算机得到了普遍应用,在各行业中扮演着十分关键的角色,它使人们的各项工作不再复杂,进而提高了工作效率。当前,大部分图书馆在办理图书借阅业务时,大
14、多以人工的方式进行。此种方式存在着较多的问题,不但使图书借阅的效率得不到提升,而且图书馆管理员也不能全面的掌握图书借阅的基本情况。人工管理在人为因素的作用下,也势必存在着一些弊端,进而造成图书的丢失等一系列后果。计算机的信息化管理则有着速度快、储存量大、可靠性强、查阅方便等诸多优点,及时地为我们处理各类信息 1。当前,市场化经济在国内得到了快速化发展,也使人们对文化的需求日益提升,而图书则成为人们获取文化知识的最佳途径。对于大学生来说,通过阅读图书来获取知识无疑是非常必要的。绝大多数的高校都有自己的图书馆,丰富的馆藏可以帮助学生获得更多的学习资料和阅读机会,但同时也为图书馆的管理工作带来了问题
15、。人工记录大量的书籍、读者和借阅记录信息,不仅工作量大、人员成本高,还容易因为人工的失误造成读者查找和借阅的不便。利用计算机和基础网络,图书馆可以转变管理模式,减少人工的记录和查找,简化借阅和归还的流程,这都可以为图书馆减少人员成本,提高服务质量提供帮助。另外通过建立网上图书馆,海量的多媒体馆藏资源还可以帮助读者更好地了解图书馆的文献资源,更加快速、有效地阅读自己需要的图书和期刊 2。1.2 课题相关国内外研究现状图书馆管理系统起源于上个世纪 50 年代,那时的自动化管理主要面向图书的流通和编目工作。1965 年,美国国会图书馆首次用计算机进行图书编目管理,而受限于当时计算机技术的发展程度,计
16、算机系统对图书馆管理工作的帮助并不显著 3。上个世纪 60 年代的计算机设备的价格昂贵,只有国家级的图书馆才有专用的计算机系统,再加上当时的计算机性能较弱,存储量和处理能力都很低,致使这段时间的图书馆信息系统的发展缓慢。图书馆管理系统的应用更多是实验性质,系统的可靠性和安全性也很难保证 4。大部分图书馆只能在所在单位的计算中心中部署图书馆管理系统,尝试性地进行图书馆自动化管理研发工作 5。上世纪 70 年代中期,计算机软硬件技术水平得以飞速提升,更多的机构和单位都拥有了专用的计算机系统。这一阶段的图书馆信息系统研发也进入了实用阶段,虽然还没有真正意义上的系统管理软件,但各种不同功能和原理的图书
17、管理信息系2统真正进入了业务环节,提高了图书馆的办事效率 6。当时还没有专门进行图书馆管理系统研发的团队,只是在图书馆的个别部门进行图书采访、图书编目、图书流通、期刊管理等方面研究工作。图书馆信息系统还是由中央主机管理的终端系统。上世纪 80 年代,小型机逐步成为计算机终端的主体,更多的图书馆配备了专用的计算机,并投入了足够的人力物力进行图书馆信息系统软件的研制工作 7。图书馆自动化系统由简单的图书编目和流通管理向功能强大的集成系统方向发展。较为成熟的图书馆管理集成系统被广泛的应用,随之而来的是巨大的商品化机遇。很多技术人员从图书馆机构分离出来专门从事图书馆集成系统的研发工作,很多大型软件公司
18、也和图书馆合作开发相应的商业产品。市场上出现了一批技术含量高、功能较为齐全、应用范围广的图书馆自动化集成系统 8。进入 21 世纪,随着科技的高速发展,图书馆管理系统的集成化和商品化得到了进一步加强。该类系统的性能越来越高,规模越来越大,价格也越来越便宜,在很多图书馆都得到了应用 9。图书馆不再需要组织人力物力进行图书管理软件的开发,所有的图书管理软件都是商品化的系统软件,这也标志着图书管理系统进入了商品化时代。再加上网络的普及,网络化的结构也逐步成为图书馆管理系统的主要结构 10。我国的图书馆管理系统研发始于上个世纪 70 年代中期,当时我国组建了一批试点性的图书馆管理自动化系统研发团队。上
19、世纪七十年代,由中科院专家组成的专业化研究团队,应用计算机来获取文献数据,能够提供大量的与图书检索相关的服务 11。时至今日,我国图书馆管理自动化系统已经走过了 40 个年头,其发展的阶段主要有四个:1976 年到 1980 是探索阶段。在这个时期,国内一些专家开始向国外学习图书集成系统管理的实践经验,并深入的探索了中文机读编写文献的相关技术。1976 年的汉字信息处理工程,为图书馆管理系统提供了中文通讯、中文激光照排、中文情报检索等方面的技术支持,我国的图书馆自动化研究工作也从此起步。此后,中科院研发部门在原有的基础上构建了专业化团队,并与计算机所进行合作共同开发中文文献数据,其数量多达 6
20、00 余册。由于当时计算机还不支持中文信息的相关功能,只能用拼音处理和描述中文文献 12。1981 年到 1985 年是实验阶段。经过探索阶段的积累,我国图书馆界已经掌握了图书管理集成化系统的研发技术,一些大型图书馆组织图书馆管理人员实施集中技术培训,同时也加入到 MARC 合作组中,推行图书馆信息化系统的自主研发工作。这段时间国内的图书馆机构结合单位自身情况,进行了一系列探索性的研究和开发工作 13。1986 年到 1995 年是使用阶段。在当时,计算机的性能和容量大幅度提高,为图书馆自动化和集成化发展提供了有利的条件。国内的图书馆信息系统研发团队经3过前两阶段的理论积累,利用先进的计算机终
21、端技术在图书编目、检索和流通等主要图书馆管理工作环节开展了广泛的研究和应用。图书馆管理系统也逐步向商品化和服务化的方向发展 14。1996 年至今是提高接轨阶段。进入新的世纪后,经济的快速发展使电子信息技术等发展速度进一步加快,图书馆系统中应用数据与多媒体技术已经成为当前的主要发展方向。图书馆信息化建设在各级领导的高度重视下和图书馆各业务部门的共同努力下进入了一个全新的时代。我国软件研发机构紧跟时代步伐,不断在图书馆管理系统的技术创新和商品化进程方面进行研究,为广大读者和图书馆管理人员提供了一批性能强大、易用性强、安全性高的图书馆管理信息系统。由深圳公司推出的 ILAS 系统、大连妙思开发图书
22、馆软件等都已经成为在城市化图书管理系统中得到了广泛应用。这些系统集成化高,性能优良的图书管理系统实现了图书馆的自动化管理,为图书馆降低成本、提高服务质量,为读者更加方便的查找和借阅馆藏资料提供了方便 15。时至今日,我国图书馆的信息化管理程度已经很成熟,但因各图书馆的规模和实际情况不同,图书馆集成化管理系统在国内仍然呈现水平参差不齐的状况。通过上述分析可以看出,国内应用的图书馆集成化管理系统仍然处在一个较为初级的阶段,有些技术尚未成熟。大多数图书馆应用属于一种较为简单的系统。所以,要结合图书馆的基本情况,从多个层次出发来开发一些先进的图书管理集成系统 16。1.3 论文主要工作本系统采用当今最
23、流行的面向对象语言之一的 Java 语言对前端的应用程序进行设计,对后台数据库的设计采用了 oracle10g 开发。本文从项目开发、需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。详细论述了系统分析、设计和数据库的设计等方面的内容。着重描述了该系统的图书查询、订阅、归还等功能,对很多细节上的功能也做了详细的阐述。本文的主要工作包括:(1)分析描述了课题研究的背景和意义,介绍了国内外相关研究成果,描绘了系统重点功能。根据系统的功能要求进行需求分析,建立基于 J2EE 的图书馆管理系统业务模型。(2)介绍了系统设计与实现的相关技术和论
24、文描述语言,通过介绍这些技术的优缺点分析系统的技术优势,论文使用规范的软件工程描述语言来描述系统设计与实现内容。(3)根据需求分析的要求进行系统设计与实现描述,给出了系统设计的内容和图形描述,让读者了解系统开发的全过程,包括每个功能的用例、功能设计、数4据库设计、程序设计以及界面展示等。(4)针对系统的功能和非功能需求进行系统测试,给出了系统测试的环境、方法、用例以及结果,分析测试结果总结系统实现的成果。1.4 论文组织结构本文首先对研究背景进行介绍,针对目前图书管理信息化程度不足的问题,在借鉴国内外图书馆管理系统的基础上,选择先进的系统实现技术和数据库技术开发了一套用于管理高校图书馆的信息系
25、统。论文共有 6 个章节,分别是绪论、技术、需求分析、系统设计、系统实现与测试、总结。第 1 章,绪论。主要介绍了基于 J2EE 的图书馆管理系统的研究背景和研究意义,从国内外研究的情况切入分析出图书馆管理系统存在的难题,并简要介绍了论文的主要工作和组织结构。第 2 章,相关技术介绍。主要针对本系统开发所需要的技术进行了介绍,包括J2EE 技术架构、Struts+Spring 框架、IBatis 数据库框架、Oracle 数据库以及 UML语言等。第 3 章,系统需求分析。分析了图书馆管理系统的业务需求、用例分析、功能需求和非功能需求。为后续的设计与实现工作提供了功能要求和非功能要求。第 4
26、章,系统设计。描述了图书馆管理系统的设计内容,包括系统软件架构、拓扑结构和功能模块划分,介绍了系统实体和对应的数据库表,然后根据需求分析的结果分别介绍了每个功能模块的设计内容。第 5 章,系统实现与测试。首先介绍了系统软件架构的实现方式,然后给出每个模块的系统展示截图,最后从功能和性能两方面对系统进行测试,测试内容包括测试环境、测试方法、测试用例和测试结果。第 6 章,总结与展望。对论文进行了总结,并对未来系统的升级和维护工作进行了展望。52 相关技术介绍 2.1 J2EE 技术架构 Java2 平台有 3 个主要版本它们分别是适合在微型设备应用的 Micro 版(Java 2 Platfor
27、m Micro Edition,J2ME)、用于桌面程序开发的标准版(Java 2 Platform Standard Edition,J2SE)、用于服务供应商程序开发的企业专用版。 J2EE 是在 Java2 平台基础上构建的一种结构,此种结构能够完成系统开发、管理等任务。J2EE 技术延续了 Java2 标准版的跨平台、简易 I/O 等诸多优点,还包括了 JDBC、CORBA 等新型数据技术和安全模式。基于 J2EE 的系统开发技术规范很多,比如可扩展性标记语言、java 服务器页面等技术。J2EE 结构的系统具有高性能、高可靠性和高开发敏捷性等特点,因为 J2EE 提供了能够满足高可靠
28、性和可用性要求的中间层集成框架,这就为多层应用开发和简化系统提供了方便 17。J2EE 提供了面向现有应用程序集成的强有力支持,提供了良好的打包和部署、添加目录等应用,这些都是提高系统性能,增强系统安全机制的保障。 J2EE 由一组系统组件、服务架构和技术层次组成,这些技术规范和指南均有通用的标准和规格,使得 J2EE 可以在各种平台和软硬件环境中良好兼容。这充分解决了企业级系统信息产品之间不能很好兼容,内外数据很难互通的问题 18。除此之外,J2EE 具有很多可以为企业级系统提供可伸缩性、灵活性、易维护性和安全性等特性的优良机制: (1)渐进式开发 由于企业的业务十分复杂,如果一次实现所有的
29、系统业务显然不现实,再加上企业为了适应的市场环境往往经常变化企业管理方案,这些都要求企业信息化系统具备很好的渐进式开发特性。不能激进也不能全盘否定,要设法在原有的系统基础上建立或改进新的系统实现。J2EE 的技术规范中对渐进式开发有专门的设计,支持植入式的系统升级和维护技术,再加上 JAVA 平台本身的低容量和可移植特性,J2EE 架构的系统可以部署在任意的硬件环境和操作系统中。这些特性都使得产品供应商和用户有更多的选择 19。 (2)开发高效率 J2EE 架构是分层实现的,并且在每个层次中都保证了组件的低耦合特性。这种特性允许供应商把一些通用和频繁使用的系统组件外包给中间件供应商开发,这样不
30、仅可以提高开发的敏捷性,还可以通过使用高校的中间件来保证系统性能。J2EE 中经常使用的中间件一般是状态管理、分布式共享数据和持续性服务组件,因为这些中间件都可以提供黑盒式的系统服务,系统供应商只需要提供相应的输入和输出规范,而无需考虑如何实现中间件和保证系统性能,这不仅降低了开发成本,6还保证了系统的可维护性,因为可以让中间件供应商承担一定的系统开发任务和来维护其部署在系统中的中间件 20。 (3)异构环境 J2EE 架构秉承了 JAVA 平台可移植异构环境的优良传统,可以不依赖任何的软硬件环境,另外系统中的中间件、外部软件也可以支持异构环境。因此在设计J2EE 系统时无需考虑如何部署到各个
31、平台上,这十分有利于供应商的成本控制策略。客户可以任意订购符合自身硬件条件的 J2EE 标准系统,不需要为自己的软硬件是否兼容发愁,节省了一大笔开支 21。 (4)可伸缩性 由于企业的大小不同,业务复杂度也不尽相同,要设计符合所有企业的信息化系统是一个十分困难的工作。J2EE 凭借其强大的伸缩特性为不同级别的企业级用户提供了业务解决方案。例如同一个 J2EE 架构系统,可以部署到普通的 PC 上,也可以部署到架装服务器上,还可以部署到大型机系统上,还可以通过具有复杂平衡特性的分布式服务器集群上。从单机的单核、双核、多核,到集群式的服务器系统,J2EE 架构都可以完美的兼容使用,这种强大的可伸缩
32、特性是保证 J2EE 架构长盛不衰的基础特性 22。 (5)高可靠性 企业级的信息化系统一般都要全天候的运行,要 24 小时满足用户和合作伙伴的访问需要。特别随着网络技术设施的普及,全球化的进程不断完善,任何的系统延迟或停机都会造成企业信息化系统的不可用,甚至出现灾难性的后果。J2EE 的部署机制可以保证系统的高可靠性和安全性,并且和所有的操作系统安全机制兼容。据统计,全球型的 J2EE 架构 web 系统平均可用性在 95%以上,年平均停机时间不足 10 分钟。可靠性和安全性是商业系统最低也是最先考虑的选择条件,J2EE 在这方面的表现无遗是完美的。作为一类应用模型,J2EE 系统开发体现出
33、分布式的特点。按照功能分布将应用逻辑细化为若干个系统组件,每个组件又分布在不同的组件服务器上。这种多层分布式结构可以有效地解决传统 Java 平台系统客户端过于臃肿的问题。将主要的业务逻辑放在服务器上,可以避免由于客户端过于分散造成的难以升级维护和扩展性不强的问题,还能增强系统的重用性和安全性。J2EE 一般分为四个层次,每个层次都由不同的服务器支持和维护,当要修改某个层次时不会影响其他层次的结构。这四个层次分别是,在客户端承载用户组件的客户层,在此种服务器中可以加载页面逻辑的 web 层,此类服务器能够加载业务量逻辑的业务层,也可以使与企业信息相关系统软件层得到有效的运行。J2EE 的四层模
34、型结构如图 2-1 所示。7客 户 端 应 用程 序 动 态 网 页页 面 逻 辑业 务 处 理 服务业 务 处 理 服务数 据 库客 户 层Web层业 务 层EIS层图 2-1 J2EE 的四层模型结构2.2 Struts+Spring 框架 2.2.1 Struts 框架 Struts 属于一类开发性的应用模型。近年来,此项技术得到了快速的发展。该框架已经在 JSP Web 中得到了广泛的应用。发展之初, Web 服务是以 JSP 为中心的运行状态。在 JSP 的主要作用是表现与控制逻辑。这样的方式,在页面规模很小的项目上无法体现出缺点,但是当项目规模扩大,页面间关系交错复杂时,如果将一张
35、页面进行修改,那么它就会对其他页面产生一定的影响,进而使整个程序的运行受到严重的影响。同时,如果同时打开页面与逻辑开发,这样将会对分工合作与代码产生较大的影响,使程序不再具有可延展性 23。 为了改进上述不足,在 web 服务中加入控制器,而控制器包括 servlet,客户端的需求将不再直接发传送至 JSP 页面,而是经由中央指挥者传送控制器,随后控制器会结合实际需要对业务逻辑进行调整,这样得到的结果将会反馈到页面中。这样便于将业务逻辑从 JSP 文件剥离出来,JSP 文件也就净化为一个单纯完成显示的构建,即 View 视图层。而担当控制器的 servlet 则被赋予 control 控制,进
36、行处理的事8务逻辑便成为了 Model 模型,即 MVC。Struts 就是一种具体实现 MVC 理念的程序框架。可以使用 servlet 的接受客户发出全部需求。随后结合实际的参数与 Struts 配置内的 Action Mapping,此后请求将会由 Action 进行处理,这些共同组成了 Struts 的控制器 24。2.2.2 Spring 架构 Spring 框架是个轻量级的 Java EE 框架。最核心的理念是 IOC(Inversion of control),即控制反转。在控制过程中,对象可以向容器进行切换。随后容器会结合配置文件来构建一些新型的实例,同时也要保证各个实例间形成
37、一种相互依赖的关系。这样就让一个对象的创建不用 new 了。此种构建模式应用的原理是 Java 里的反射,以反射为基础使系统在运行过程中创建对象。当 Spring 开始运行时,可以结合相关的配置文件来构建动态对象以及调用对象中的方法 25。 Spring 另一个核心就是 AOP(Aspect-Oriented Programming)属于一种面向切面的编程。此种编程可对某些对象间合理化的控制,这样就能够达到扩展模块的目的。只有通过配置才能达到实际的要求。而进行 Spring 编程的主要目标是:对象在进行关联时,就不需要借助代码来完成。Spring 属于一类容器,只有容器内部含有对象,Sprin
38、g 才能提供相关功能与服务 26。 2.3 IBatis 数据框架 IBatis 不同于被广泛使用的 Hibernate 数据映射技术,它不具备全自动的数据查询、插入、修改、删除操作,也没有紧密约束关系的 OR 映射。IBatis 为开发者提供了更为灵活和便捷可控的类 ORM 数据解决方案,他们需要自己实现 SQL 语句,可以根据自己的需要进行灵活的创作和性能提升。当然,开发者在提供这些 SQL之后,就无需担心他们是否会被正确的运行,IBatis 会保证运行的稳定性和安全性。根据写好的 SQL 和参数条件,IBatis 会动态生成执行带参数的 SQL 语句,然后传参数进去,为这些 SQL 参数
39、提供具体值。IBatis 会自动根据配置文件生成数据连接池,只要有合适的驱动文件,就可以自动的执行 SQL 语句,利用 IDataReader 机制返回数据结果集,生成一个可被识别的强类型数据对象(IList)相对于其他配置复杂类似 Community Server 的数据操作架构,IBatis 无需开发者编写复杂的重复代码,只需要一个配置文件,然后调用 SqlMapper 的实例对象即可简单的实现。当然,当系统的复杂度和数据操作量较大时,编写 IBatis 配置文件也是一个比较繁琐复杂的工作 27。 数据操作的事务问题方面,IBatis 为我们提供了全自动的管理和执行 SQL 语句的机制,返
40、回的结果集也是强类型的数据对象。它直接生成 DB Command 返回集,这样用户可以自由的选择数据集合进行进一步的操作。 效率方面,虽然 IBatis 使9用了少量的发射技术,但是由于配置文件的形式,数据操作性能的影响就可以忽略不计了。根据测试,使用 IBatis 进行多条记录的添加操作和使用 UpdateDataSet 这种批量提交的形势比较,整体效率有所提高,性能优秀。IBatis 的缓存机制很有特点,它可以根据不同的条件进行有选择的 SQL 执行,缓存机制可以保存某个条件执行之后的输出数据,这些都是在生成结果集之前封闭进行 28。 IBatis 运行环境必须的两个配置文件是 SqlMa
41、p.config 和Provider.config。SqlMap.config 是 IBatis 的核心配置文件,用来保存相关的配置环境和实体文件地址,它的存放目录必须是应用程序的运行目录下,并且是静态不可改变。Provider.config 是用来分配数据驱动类的配置文件,是用来区分不同数据库的,它的文件名是不固定的,可以通过 SqlMap.config 配置它的引用路径。 2.4 Oracle 数据库 Oracle 数据库管理系统是美国甲骨文公司的分布式数据库管理软件。甲骨文公司是目前世界上仅次于微软的第二大软件公司,公司英文名就是 Oracle。1979 年,Oracle 公司在美国的加
42、利福尼亚州城里,其核心软件产品就是以公司名命名的关系型数据库管理系统 Oracle 数据库。Oracle 数据库是全球首个关系型数据库管理系统,其具有的跨平台、分布式、海量数据处理和安全体系都是世界一流,Oracle 数据库目前仍被广泛的应用于 B/S 结构的企业级信息化系统开发过程中。Oracle 数据库是一个系列产品,所有的甲骨文公司数据库产品编号都以 Oracle 开头,甲骨文公司也凭借 Oracle 产品成为实际上最大的数据库管理系统供应商,也是最主要的信息处理软件供应商之一 29。Oracle 数据库系统采用客户端/服务器的形式,服务器就和其他关系型数据库一样可以提供集成化、开发、全
43、面的数据存储和维护管理办法。Oracle 服务器又数据仓库和数据库实例共同构成,其中数据仓库包括了自治性的数据存储透明机制,数据库实例包括一个 SID 和相关的权限控制机制。Oracle 服务器又权限机制,通过用户名来区分用户权限,具体包括 Internal、Sys 和 System 三种。其中 Internal 是 Sys的别名,是由数据库管理员使用进行数据库启动和关闭的基础用户名;Sys 用户名具有最高的操作权限,一般由数据库管理员所有,用来进行数据库操作;System 用户名是较低权限的用户名,仅能进行普通的数据查询,供普通用户使用。 Oracle 客户端是为了满足用户远程访问和操作数据
44、库而设定,具体包括数据应用、维护工具和联网工具等。进行本地数据库访问可以通过制定用户名来登录客户端,进行远程访问则需要制定个特定的 PC 位置才能建立和维护数据库访问连接。由于 Oracle 数据库的物理存储和逻辑存储彼此分开,所以可以通过客户端操作逻辑结构时无需考虑物理存储结构,反之亦然。 102.5 UML 语言 UML(Unified Modeling Language)属于一种能够进行编程的可视化语言,主要以图形化的形式进一步展现。UML 的应用主要是为了各种开发人员的交流都给予一个标准的平台上进行,同时为了清晰便捷,UML 定义了不同的图形来表示不同的信息,可以简单直观的表达程序开发
45、人员对系统的理解。UML 支持面向对象的编程理念,是一门图形化的语言,在每一个图形符号后面都拥有良好的语言机制,可以根据用户的需要增加标记值、构造型、约束等。UML 作为一种建模语言,主要涵盖 UML 语义和 UML 表示法两个部分:UML 语义可以精确描述建模的概念,形成一个统一、通用和简单的定义过程,是模型开发者可以在语法层次达成统一,可以消除语义形式对于模型定义的影响。UML 表述法则是通过图形和文本语言相结合的方式为系统建模提供了统一和形象的标准展现方式。当程序设计人员对系统进行设计时,首先会对需求进行建模,其次便会对具体的需求进行系统行为描述。第一步需要使用到包括用例图、类图、对象图
46、、组件图和配置图等五个图形,第二部则主要使用到包括活动图、状态图、合作图和顺序图等表示执行时的交互关系或时序状态的图形。UML 作为一种抽象的描述语言,将各种需求用一种通用的语言来进行全面的描述,为来自不同语言文化背景的开发人员提供了一个统一的交流平台,类似于阿拉伯数字一样在整个业界通用流行 30。2.6 本章小结 主要针对本系统开发所需要的技术进行了介绍,包括 J2EE 技术架构、Struts+Spring 框架、IBatis 数据库框架、Oracle 数据库以及 UML 语言等。113 系统需求分析 3.1 系统业务需求 3.1.1 业务分析 根据高校图书馆管理的实际情况,本系统的主要用户
47、包括图书馆管理人员、普通用户和借阅者三类。图书馆管理人员也就是日常维护图书馆的人员,他们负责图书借阅信息的记录和管理,形成借书或还书报表供借阅者确认,同时还要负责图书馆的日常信息发布、管理机制维护等业务工作;普通用户是指通过本系统查询图书情况和借阅信息的用户;借阅者一般为学校的学生或教职员工,他们凭借统一规格的登录信息来进行系统登录后的借阅信息查看和图书借阅操作。基于 J2EE 的图书馆管理系统业务流程图如图 3-1 所示。 登 录 系 统 登 录 系 统 进 入 系 统开 始核 对 个 人 信息无 误 ?借 阅 信 息 查询新 书 推 荐退 出 系 统日 常 信 息 维护用 户 信 息 维护
48、新 书 采 购图 书 信 息 维护图 书 查 询日 常 信 息 查询退 出 系 统结 束借 阅 者工 作 人 员 普 通 用 户NY图 3-1 系统业务流程图123.1.2 用例分析 根据业务分析的介绍,本系统的主要角色有三种,分别是工作人员、借阅人员和普通用户。其中工作人员和借阅人员都需要登录系统才能操作,普通用户不需要登录系统。 本系统的设计与实现内容都要通过面向对象建模技术和 UML 语言来描述,在进行业务需求分析时要划分系统的主要角色和相关用例,在基于 UML 语言中,用例图能够全面的描述用户的需求,更好的发挥描述的各种功能。基于 J2EE 的图书馆管理系统业务角色有 3 种,分别用
49、3 个用例图来描述每个角色的用例和用例之间的关系。 工作人员角色是指图书馆管理员或系统管理员,他们的主要用例是系统信息维护、书籍信息维护和借阅信息维护,这些功能提供的信息都是维持系统正常运行的关键信息,所以工作人员的操作必须在系统登录之后且有相关功能的操作权限才能进行。工作人员可操作的功能包括图书信息维护、借阅信息维护、系统登录和系统信息维护等。工作人员角色的用例图如图 3-2 所示。 工 作 人 员图 书 信 息 维 护借 阅 信 息 维 护系 统 登 录系 统 信 息 维 护数 据 库 维 护读 者 须 知图 书 馆 通 讯 录新 书 通 报图 书 采 购借 阅 查 询超 期 公 告图 3-2 工作人员用例图借阅人员角色主要是在图书馆借阅图书的教师或学生,他们有自己的登录账号(借书证号或读者条码),他们的主要用例包括图书查询、借阅历史查询、预约借书单和维护个人信息等。为了方便图书馆管理个人信息,借阅人员的信息必须真实且必须登录之后才能进行操作。借阅人员可操作的功能包括借阅管理、图书查询、个人信息维护和系统登录。借阅人员角色的用例图如图 3-3 所示。13借 阅 用 户系 统 登 录个 人 信 息 维 护信 息 查 询修 改 密 码借 阅 管 理图 书 查