基于SSM的植物园管理系统设计与实现

目 录

摘 要 I

Abstract II

引 言 1

1 开发技术简介 3

1.1 SSM框架 3

1.2 JSON 3

1.3 Ajax 4

1.4 Bootstrap前台框架 4

1.5 Eclipse 4

1.6 本章小结 4

2 系统分析 5

2.1可行性分析 5

2.1.1 技术可行性 5

2.1.2 经济可行性 5

2.1.3 操作可行性 5

2.2 功能需求 5

2.3 用例分析 6

2.3 非功能需求 8

2.4 本章小结 8

3 系统设计 9

3.1 系统总体设计 9

3.1.1 系统体系结构 9

3.1.2 系统功能结构 9

3.2 系统详细设计 10

3.2.1 数据库设计 10

3.2.2 功能设计 14

3.3 本章小结 20

4 系统的实现 21

4.1 开发环境 21

4.2 开发规范 21

4.3 数据库实现 21

4.4 核心功能实现 22

4.4.1 添加植物信息功能实现 22

4.4.2 删除植物信息功能实现 23

4.4.3 修改植物信息功能实现 24

4.4.4 查询植物信息功能实现 25

4.4.5 添加绿化管护信息功能实现 26

4.4.6 删除员工信息功能实现 27

4.5 本章小结 28

5 系统测试 29

5.1 测试目的 29

5.2 测试计划 29

5.3 测试用例 29

5.4 压力测试 31

5.5 本章小结 32

结 论 33

致 谢 34

参考文献 35

摘 要

随着社会的进步,各行业当中的竞争愈加激烈,如何做到提升管理工作效率和服务质量水平的同时,降低信息管理成本,成为现阶段管理者必须关注和思考的问题。现如今各大植物园植物物种繁多、类型复杂,使得人为管理信息难度愈来愈大,明显是不能满足实际工作的需求,效率也相当低下。另外,植物爱好者想要根据特殊条件查询浏览相关植物信息途径也十分狭隘。针对目前的现状问题,特地设计并开发基于SSM的植物园管理系统。

通过对植物园管理系统的调研,并充分考虑到未来植物园发展方向等可变因素,本文将SSM轻量级框架技术引入Java Web应用实践,运用MySQL数据库和Tomcat9.0应用服务器共同开发实现了植物园管理系统这一项目。植物园管理系统共划分管理员和游客两种角色,所实现的功能包含植物信息管理、游客信息管理、景区信息管理等十几个模块。通过本系统对植物园日常信息进行操作,不仅降低园区管理业务难度,而且还使园区信息更加精准无误,在很大程度上降低了植物园运营成本。

植物园管理系统采用Java Web技术使得系统具有可靠性高,适用性强,整体运行稳固等特点。经过具体的代码编写与系统测试,基于SSM的植物园管理系统中各个功能均能成功应用,可以满足植物园管理者日常工作的使用。

关键词:管理系统; 植物园; SSM框架

Abstract

    With the progress of society, the competition among various industries is increasingly fierce. Improving management efficiency and service quality while lowering information management costs has become a problem for managers to look out for and think about at this stage. Nowadays, there are many plant species and complex types in each botanical garden, which makes it more and more difficult to manage information artificially. Obviously, it cannot satisfy the asking for practical work, and the efficiency is also quite low. In addition, the way that plant lovers want to query and browse relevant plant information according to special conditions is also very narrow. In view of the current situation, the botanical garden management system due to SSM is specially designed and developed.
			    		Based on the investigation of botanical garden management system, and fully considering the variable factors such as the development direction of botanical garden in the future, this paper introduces SSM lightweight framework technology into Java Web application practice, and with MySQL as the database and Tomcat as the application server, the Botanical Garden Information Management is realized. The management system of botanical garden is divided into two roles: administrator and tourist. The functions include plant messages management, visitor messages management, scenic area messages management and so on. Through this system to operate the daily information of the botanical garden, not only reduce the difficulty of the park management business, but also make the park information more accurate, in an enormous level, reduce the operation cost of the botanical garden.

The management system of botanical garden adopts Java Web technology, which makes the system have the characteristics of high reliability, strong applicability and stable overall operation. Through specific code compilation and system test, each function of the botanical garden management system based on SSM can be successfully applied, which can meet the daily work of botanical garden managers.

Keywords: Management System; Botanical Garden; SSM framework

引 言

随着计算机应用技术和互联网应用技术的蓬勃发展,采用计算机进行信息管理已是各个行业不可或缺的部分,作为融合生命科学创新性研究、科普教育、资源存储和旅游开发于一体的植物园也不例外,对此国内外对于植物园林管理系统都做了大量研究。

最先应用计算机处理植物园信息的是1969年邱园初步将该园所拥有的活植物记录添加至计算机中。现阶段运用较广,技术相对成熟的数据管理软件是美国K.S.Walter博士于1985年设计开发的BG-Base软件。已应用近22个国家超过140多个植物园和树木园。而后爱丁堡植物园与Holden树木园一起拓展开发BG-Base,使原本侧重于植物信息分类系统研究的BG-Base更加趋于完善,也更加适用于植物园的物种保护,早已发展成为世界上最强大、内容最充裕并且很先进的植物园管理系统,但是也带来了过于繁杂和操纵困难等问题,并不适用于我国植物园。我国植物园应选用符合自身条件的管理系统[1]。

中国植物园管理系统起步较欧美晚。1998年受国家自然科学基金扶助,南京中山植物园在Lotus1-2-3集成软件上开发了我国首个植物园信息记录计算机管理系统。这一项活动极大地推进了我国植物园管理系统的发展。沈阳园林研究所、中国科学院植物研究所等纷纷从事这方面的研究,并接连推出各自的系统,这些系统各有特点,但一般使用范畴较小,信息资源较少,功能也相对简单[2]。从二十一世纪开始,由生物多样性项目研究入手,也逐步加强了在植物园系统构建方面的投入力度,而且由于拥有着后发优势,进步飞速,数据库技术日趋成熟,逐步实现了从单机版到网络版的跨越。目前,多数植物园采用JSP、JavaBean和Servlet技术,制作查询、管理网页,开发了植物园管理系统,实现了用户凭借浏览器访问系统,按植物名称检索信息和维护植物信息两大功能。但是此系统还比较功能简单,不全面且并不能紧随现代植物园的发展而做出更新优化,远远不满足植物园日常信息管理的需要。为此本文设计并实现了一套具有完整体系的植物园管理系统,为植物管理员和游客提供便捷的服务。

本文主要依据植物园日常管理工作的基本流程,对系统权限和用户功能进行合情合理的划分,进一步规范化植物园工作流程。在设计时,对系统的可靠性、稳定性、跨平台性、可扩张性、可维护性等提出了更高的要求,满足后续对系统的更新需求。在界面设计方面尽可能简约清澈且功能按钮齐全,满足用户基本操作需求,从而提高植物园管理的效率,达到信息管理智慧化和高效化的目标。

本文结构安排如下,

第1章,开发技术简介,本章主要介绍植物园管理系统在开发过程中使用的开发语言、框架技术以及数据库技术等;

第2章,系统分析,本章主要对植物管理系统进行了可行性需求分析、功能需求分析、用例需求分析以及非功能需求的分析;

第3章,系统设计,以系统总体结构、数据库设计和功能设计三方面对本系统进行总体设计,对系统实体关系图和功能结构进行详细阐述。

第4章,系统实现,本系统的实现,包括开发环境,设计模式和系统功能模块的实现,并配合系统功能截图介绍完成的功能。

第5章,系统测试,制定系统测试计划,详细设计系统各功能测试用例并执行测试方案,总结测试的结果。

结论,阐述系统总体的完成情况,对系统进行合理评价,并对植物园管理系统未来前景进行展望。

1 开发技术简介

本系统选取Java Web技术并引入SSM轻量级框架整合实现,使用JSON数据交换格式结合Ajax技术实现项目的前后端分离设计,应用Bootstrap框架搭建用户交互界面[3]。使用Eclipse集成开发工具进行代码编写工作。

1.1 SSM框架

SSM框架由Spring、Spring MVC和MyBatis集成而来。Spring框架是具有控制反转(IOC)和面向切面(AOP)特点的容器框架[4]。它可通过装载Bean的结构避免每次使用某个类时的初始化工作,减少关键字new的使用[5]。Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用[6]。Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问[7]。SpringMVC框架是当前一种主流的Web框架,通过分离Mode(模型)、View(试图)、Controller(控制器)的模式很好地将数据、业务与展现进行定制,使得编码更具有规范性和可读性[7]。在实际项目开发中,SpringMVC蕴含了JSP在内的众多视图技术,可以灵活的定制[9]。MyBatis框架是一个半自动映射的框架,主要作用是将Java对象与数据库中的表对应,在应用开发中采用面向对象的方法操作数据库记录[10]。MyBatis框架包含DAO组件与SQL Map组件,DAO组件的目的是抽象化应用程序的数据访问层和持久层的表示方式和位置,使它远离应用程序的业务逻辑,其主要功能是帮助开发人员进行基于DAO设计模式设计和开发J2EE应用程序。SQL Map组件通过使用简单的XML配置文件将Java Bean、XML、Map映射成SQL语句, 通过SQL语句的执行获得Java Bean、XML、Map对象从而大大减少访问数据库的代码[11]。

1.2 JSON

JSON全称为JavaScript Object Notation其中文含义为对象简谱,是一种轻量级的数据交换格式[22]。它基于ECMAScript也就是欧洲计算机协会制定的JavaScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据[23]。跟传统的XML数据格式相比,不但更易于人阅读和编写,同时也更易于机器解析和生成,并且有效地提升网络传输效率[12]。

JSON可以将JavaScript对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式[13]。

1.3 Ajax

Ajax全称为Asynchronous JavaScript And XML,其中文含义为"异步的JavaScript和XML"。应用Ajax技术与服务器数据进行交互,可实现对网页的部分内容进行刷新,无需对整个页面进行重新加载,只需要通过Ajax技术向服务器提交需要刷新部分的数据,即可完成网页信息的显示,Ajax缩短了网页加载时间,会带来更好的用户体验[14]。

1.4 Bootstrap前台框架

Bootstrap框架是目前最有影响力的集HTML、CSS和JavaScript和于一体的框架,主要用于开发响应式布局、移动设备优先的WEB项目[15]。它是由Twitter公司于2011年8月在Git Hub上发布的开源产品,自称是为所有开发者、所有应用场景而设计[25];能让前端开发更快速、简单;所有开发者都能快速上手、所有设备都可以适配、所有项目都适用。据统计,全球有数以百万计的网站都是基于Bootstrap构建的[16]。

1.5 Eclipse

Eclipse工具属于当今比较流行的一款开源开发工具,可以扩展的开发平台是基于Java语言集成的,因此具有与Java语言程序完美契合的编码、查错、编译、帮助等功能,更为方便的是它提供强大的插件功能可以实现无限扩展[21]。

1.6 本章小结

本章主要介绍了植物园管理系统所应用到的SSM框架、Json数据集、Ajax等相关技术,以及对Bootstrap前台框架和Eclipse开发工具等相关内容阐述说明。通过深入了解并且学习这些技术为后续系统的实现打下稳固的基础。

2 系统分析

2.1 可行性分析

可行性分析是系统研发途中首要阶段,其目的正是保证系统在理论基础上是合理的,可行的[24]。为此本系统利用较短时间对技术、经济和操作三个方面进行调查评析并得出分析结果,以此判断本系统是否拥有开发可行性的条件,从而可有效预防项目开发的风险,减少人力物力财力无关紧要的浪费。

2.1.1 技术可行性

本系统的实现不需要任何付费软件,仅需选择Java语言结合Eclipse开发工具就可以解决相关开发问题,从而保证系统功能的实现。同时本系统体系架构B/S架构,后续的维护和更新工作仅需配置服务器端编码就可实现。就上述分析可见,本系统在技术方面是可行的。

2.1.2 经济可行性

从经济可行性方向分析,由于本系统开发复杂度相对较低,操纵简便,只需要常用的开发工具,硬件选取现存的网络和设备,开发消耗费用较低。另外,应用网络技术来进行植物园信息管理,信息成本降低,用户不在需要传统文本方式进行信息管理,节省了文本费用,同时本系统支持园区实时动态展现功能,可减少植物园宣传费用,能够极大降低整个植物园日常管理的成本。就上述分析可见,本系统在经济领域也是合理的,可行的。

2.1.3 操作可行性

本项目是基于Java语言的Web界面的系统,用户仅需配置浏览器服务,通过指定链接无须的任何专业特训就可访问已配置服务器上的软件系统,操作简单,方便易用。同时,本系统提供相当多的交互提醒,告知用户操作影响范围,以此保障植物园日常管理工作的顺利进行。

2.2 功能需求

本文以植物园为背景,通过研究分析当前植物园管理现状、存留问题以及实际需求,设计并开发一个针对植物园日常管理工作的管理系统。植物园管理系统将面向两种用户设计而成,分别为植物园管理员和游客。只有满足这两类用户的基本需求,才能将本系统算作是一个完整的植物园管理系统,方能顺利投入应用。

从植物园管理员角度分析,管理员登录系统成功后进入系统管理员界面,左边导向栏具有5个模块,分别为植物管理、养护管理、员工管理、区域管理和账号管理。其中植物管理包括植物信息管理、植物种类信息管理和植物状态信息管理,管理员可根据实际需求对植物相关信息进行增、删、改和查操作。养护管理包括肥料信息管理和绿化管护信息管理,管理员可以根据园区植物状态对于绿化管护信息进行相应操作;员工管理包括员工信息管理,员工种类管理,员工状态管理,在这里可以看到所有员工的个人信息、岗位信息和休假状态等;区域管理部分包括景观区域管理、管理区域管理和服务区域管理,管理员可根据不同区域特色对植物园整体进行细致划分。账号管理包括用户信息管理、用户类型管理、用户状态管理,管理员可以对用户信息进行维护操作。

从游客角度分析,游客登录系统成功后进入游客主界面,左侧游客服务导向栏会分为4个模块。分别为植物信息展示、景区信息展示、园区管理展示以及商品服务展示。其中园区信息展示包括植物信息展示和景观区信息管理,游客可以通过植物信息展示功能在第一时间了解当前植物园区植物信息情况。游客可以根据园区管理展示和商品服务展示查找对应管理区信息请求协助或是提前预购服务商品。

设计这些功能大体上可以满足植物园日常信息管理需求和游客的服务要求,这样一个功能丰富、方便使用、时代潮流的管理系统必将引起社会广泛关注。

2.3 用例分析

用例分析是将系统行为活动分派给不同用例模型,由用例模型交结实行系统的行为,从而确定项目总体功能需求,进而对项目开发步骤进行合理地规划,最终有序地完成项目开发设计。

植物园管理系统分为植物园管理和游客两个角色,其中登录、忘记密码、修改用户个人信息、植物信息管理、景区信息管理、管理区信息管理以及商品服务信息管理为管理员和游客的共有功能。对于植物信息管理、景观区信息管理、管理区信息管理以及商品服务信息管理等游客仅支持对管理员发布的信息进行查询。除此之外,管理员有养护管理、员工管理、区域管理以及账户管理等功能。植物园管理系统的核心功能为植物信息管理、养护管理、员工管理三大部分。植物园管理系统总用例图如图2.1所示。

图2.1 植物园管理系统总用例图

植物园管理员输入登录信息后,等待身份校验,校验成功后即可进入植物园管理系统管理员工作界面,管理员在应用本系统时可以对园区植物信息,植物类别信息、植物状态信息进行维护管理操作,并且可以根据植物状态信息安排员工进行相关植物养护绿化操作。与此同时管理员可将植物园区按特点划分为景观区、管理区、商品服务区,且可对其信息进行增删改查维护操作。同时管理员还可对员工信息以及账户信息进行维护操作,以便于资源合理应用。植物园管理系统管理员用例图如图2.2所示。

图2.2 植物园管理系统管理员用例图

游客输入登录信息后,等待身份校验,校验成功后即可进入本系统游客界面。游客可对其个人账户信息进行修改和查询操作,同时游客还可对该植物园植物信息、景区信息和商品服务信息等进行检索浏览,以保证游客对植物园的基本信息做到了解,保证出行游玩的顺利,以免到达植物园后,由于没有了解相关内容,导致不能尽情赏玩。植物园管理系统游客用例图如图2.3所示。

图2.3 植物园管理系统游客用例图

2.3 非功能需求

植物园管理系统的功能需求是指在植物园管理系统中所具备的功能,满足调查中呈现的需求的一种属性。除了满足上述介绍的有关植物园管理需求方面的具体管理功能,还有一些管理方面的非功能性的需求分析,首先系统前端通过Bootstrap技术完成实现,页面雅观整洁,实施操作方便,即使不进行系统培训,操作员也可熟练应用本系统,增加了系统的实用性[16]。另一方面系统应用MySQL数据库,能够保障大数据量依旧进行迅捷查询功能,卓效地实行各类操作,况且客户配置方便,此外对于数据库访问数量不做限制[17]。最后本系统还具有较强的跨平台性能和较好的拓展性,有助于系统日后的维护和更新工作,所编码出的系统的生命周期是很有保证的[19]。

2.4 本章小结

本章主要对植物园管理系统的系统分析进行阐述说明,包含了系统可行性分析、功能分析、用例分析以及非功能需求分析等四个方面。并在用例分析阐述途中对系统的全局用例图、管理员用例图和游客用例图进行细致描绘,详细地探讨了系统两类用户的功能需求。通过四个层面的系统分析阐述,为接下来系统的整体实现打好根基。

3 系统设计

3.1 系统总体设计

3.1.1 系统体系结构

植物园管理系统采用SSM的四层架构进行设计开发,将系统整体划分为视图层、控制层、业务层和持久层[3]。用SpringMVC负责请求的转发和视图管理,用Spring实现业务对象管理,用Mybatis作为数据对象的持久化引擎,其中视图层采用较流行的Bootstrap框架完成界面搭建,持久层由Mapper文件实现,控制层、服务层、持久层之间的数据以及Pojo对象进行封装传递如图3.1所示[5]。

图3.1 植物园管理系统整体架构流程图

3.1.2 系统功能结构

本系统共划分两大功能模块,分别是植物园管理员模块和游客模块。经过对现有植物园管理系统常规功能的分析,根据实际要求设计一个合理的植物园管理系统。植物园管理系统功能结构如图3.2所示。

图3.2 系统功能结构图

系统功能总体划分为植物园管理员功能和游客功能,两类用户在操作本系统前必需进行登录操作,通过输入用户名和密码,来校验用户身份的合法性。成功校验后,系统会根据用户的权限信息跳转相对应的主界面。随后用户根据自身需求选择相对应的功能进行业务操作。

3.2 系统详细设计

3.2.1 数据库设计

根据第二章功能需求分析以及用例分析结果,对现实数据进行抽象处理,可符合系统总体需求的实体关系模型,根据此模型可描绘出的实体类关系简略图如图3.3所示。

图3.3 植物园管理系统实体关系简略图

根据系统的逻辑结构分析,得出植物园管理系统共有21个实体类,其中一对多关系有15个,因此得到21张数据表。主要包含植物信息表、植物状态表、植物类型表、肥料信息表、景观区信息表、景观区类型表、养护信息表、管理区信息表、管理区状态表、商品服务信息表、商品服务负责人信息表、员工表、用户表、用户类型信息表等。系统数据表简要信息如表3.1所示。

表3.1 植物园管理系统数据表

序号 表名 备注信息

1 Plant 植物信息表

2 Plantstate 植物状态表

3 Planttype 植物类型表

4 Fertilizer 植物肥料信息表

5 Fertilizergrade 植物肥料等级表

6 Hospital 植物养护信息表

7 Land 景观区信息表

8 Landstate 景观区状态表

9 Landtype 景观区类型表

10 Management 管理区信息表

11 Managementstate 管理区状态表

12 News 园区新闻公告表

13 Server 商品服务信息表

14 Serverman 商品服务负责人信息表

15 Servertype 商品服务类型信息表

16 Staff 植物园员工信息表

17 Staffstate 植物园员工状态信息表

18 Stafftype 植物园员工类型信息表

19 User 用户信息表

20 Userstate 用户状态信息表

21 Usertype 用户类型信息表

用户信息表(User)是用来存储管理员和游客的账户信息,其中信息包括用户序号、用户名、用户密码、邮箱、联系方式、用户状态和用户类型等。其中用户序号是本表唯一主键约束且为自增长状态。表内用户名、用户密码、邮箱、联系方式等字段均有非空约束。详情如表3.2所示。

表3.2 用户信息表

列名 数据类型 约束条件 备注信息

UserId INT(11) PRIMARY KEY 用户序号

UserName VARCHAR 非空 用户名

表3.2续页

列名 数据类型 约束条件 备注信息

Password

Email

Tel

UserStateId

UserTypeId VARCHAR

VARCHAR

VARCHAR

INT(11)

INT(11) 非空

非空

非空

非空

非空 密码

用户邮箱

用户联系方式

用户状态

用户类型

植物信息表(Plant)主要用来植物园内植物的详细信息,具有植物序号、植物名称、植物数量、植物尺寸、肥料序号、植物状态序号、植物类型序号、进园时间、备注等信息。其中植物序号是本表唯一主键约束且为自增长状态。表内除备注以外的植物名称、植物数量、植物尺寸、肥料序号、植物状态序号、植物类型序号、进园时间等字段均有非空约束。详情如表3.3所示。

表3.3 植物信息表

列名 数据类型 约束条件 备注信息

PlantId INT(11) PRIMARY KEY 植物序号

PlantName VARCHAR 非空 植物名称

PlantNum VARCHAR 非空 植物数量

PlantSize VARCHAR 非空 植物尺寸

FertilizerId INT(11) 非空 肥料序号

PlantTypeId

PlantStateId

PlantCome

Description INT(11)

INT(11)

VARCHAR

VARCHAR 非空

非空

非空

植物状态序号

植物类型序号

进园时间

备注

植物肥料信息表(Fertilizer)用来存储植物肥料的详细信息,信息包括肥料序号、肥料名称、肥料等级序号、备注等。其中肥料序号是本表唯一主键约束且为自增长状态。表内肥料序号、肥料名称、肥料等级序号等字段均有非空约束。详情如表3.4所示。

表3.4 肥料信息表

列名 数据类型 约束条件 备注信息

FertilizerId INT(11) PRIMARY KEY 肥料序号

FertilizerName VARCHAR 非空 肥料名称

FertilizerGradeId

Description INT(11)

VARCHAR 非空

肥料等级

备注

植物养护信息表(Hospital)用来记录植物园内日常养护工作信息,信息包括养护序号、养护名称、养护地点、养护状态、养护数量、养护员工编号和备注等。其中养护序号是本表唯一主键约束且为自增长状态。表内除备注信息之外的养护序号、养护名称、养护地点和养护状态等字段均有非空约束。详情如表3.5所示。

表3.5 植物养护信息表

列名 数据类型 约束条件 备注信息

HospitalId INT(11) PRIMARY KEY 养护序号

表3.5续页

列名 数据类型 约束条件 备注信息

HospitalName VARCHAR 非空 养护名称

HospitalLocation VARCHAR 非空 养护地点

HospitalState VARCHAR 非空 养护类型

HospitalNum INT(11) 非空 养护数量

StaffId

Description INT(11)

VARCHAR 非空 员工序号

备注

景观区信息表(Land)是用来存储植物园内景观区的信息,表内信息包括景观区序号、景观区名称、景观区位置、景观区游客容纳量、景观区类型、景观区状态、备注等字段。其中景观区序号是本表唯一主键约束且为自增长状态。该表内除备注之外的景观区序号、景观区名称、景观区位置、景观区容纳量等字段均有非空约束。详情如表3.6所示。

表3.6 景观区信息表

列名 数据类型 约束条件 备注信息

LandId INT(11) PRIMARY KEY 景观区序号

LandName VARCHAR 非空 景观区名称

LandLocation VARCHAR 非空 景观区位置

LandCapacity INT(11) 非空 景观区容纳量

LandTypeId INT(11) 非空 景观区类型

LandStateId

Description INT(11)

VARCHAR 非空

景观区状态

备注

管理区信息表(Management)用来存储植物园内管理区的信息,信息包括管理区序号、管理区名称、管理区电话、管理区状态、管理区资金、备注。其中管理区序号是本表唯一主键约束且为自增长状态。表内管理区序号、管理区名称、管理区电话、管理区状态、位置标号等字段信息均有非空约束。详情如表3.7所示。

表3.7 管理区信息表

列名 数据类型 约束条件 备注信息

ManagementId INT(11) PRIMARY KEY 管理区序号

ManagementName VARCHAR 非空 管理区名称

ManagementTel INT(11) 非空 管理区电话

ManagementStateId INT(11) 非空 管理区状态

ManagementFund

Description INT(11)

VARCHAR 非空 位置标号

备注

商品服务信息表(Server)用来存储植物园内所有商品服务信息,信息包含商品服务序号、名称、价格、商品服务销售量、商品服务负责人序号、商品服务类型序号和备注。其中商品服务序号是本表唯一主键约束且为自增长状态。表内的商品服务序号、商品服务名称、商品服务价格、商品服务销售量、商品服务负责人序号和商品服务类型字段信息均有非空约束。详情如表3.8所示。

表3.8 商品服务信息表

列名 数据类型 约束条件 备注信息

ServerId INT(11) PRIMARY KEY 商品服务序号

表3.8续页

列名 数据类型 约束条件 备注信息

ServerName VARCHAR PRIMARY KEY 商品服务名称

ServerPrice VARCHAR 非空 价格

ServerSale

ServerManId INT(11)

INT(11) 非空

非空 销量

负责人

ServerTypeId

Description INT(11)

VARCHAR 非空 类型

备注

植物园员工信息表(Staff)用来存储植物园内所有在职员工的信息,信息包括序号、员工姓名、性别、员工类型序号、员工状态序号等字段。其中员工序号是本表唯一主键约束且为自增长状态。表内序号、员工姓名、性别、员工类型序号、员工状态序号等字段信息均有非空约束。详情如表3.9所示。

表3.9 植物园员工信息表

列名 数据类型 约束条件 备注信息

StaffId INT(11) PRIMARY KEY 员工序号

StaffName VARCHAR 非空 员工姓名

StaffGender INT(11) 非空 员工性别

StaffTypeId INT(11) 非空 员工类型序号

StaffStateId INT(11) 非空 员工状态序号

植物状态信息表(Plantstate)用来存储植物状态的信息,信息包括植物状态序号、植物状态名称和备注。该表的唯一主键约束是植物状态序号且为自增长状态。表内植物状态序号和植物状态名称的信息值均有非空约束。详情如表3.10所示。

表3.10 植物状态信息表

列名 数据类型 约束条件 备注信息

PlantStateId INT(11) PRIMARY KEY 植物状态序号

PlantStateName

Description VARCHAR

VARCHAR 非空

非空 植物状态名称

备注

3.2.2 功能设计

在系统功能设计之初,应先描绘出功能时序图并对功能点进行详细说明,可为日后编码工作提供有效根据。本系统的核心功能为植物信息管理、绿化管护信息管理以及植物园员工信息管理,接下来将对本系统的核心功能设计进行细致阐述。

添加植物信息功能,管理员通过用户名和密码登录至管理员主界面,点击植物管理,选择植物展示按钮,即可进入植物信息展示界面,点击植物信息添加下拉框,根据提示输入将要录入的植物信息,点击保存,即可将所输入的植物信息保存至数据库之中,并且在植物信息展示界面加载显示。添加植物信息功能的时序图如图3.4所示。

图3.4 植物信息添加功能时序图

植物信息添加功能设计,首先管理员进入植物展示界面,即plant.jsp页面,按照要求在添加框中输入需要录入的植物信息,其中包括植物名称、植物尺寸、植物数量等,通过单击保存按钮完成信息添加操作。用户录入的植物信息将通过Ajax请求传送至后端服务器并通过PlantshowController接收并传递给PlantshowService进行结果处理,进而再传递给PlantDao,PlantDao会调用insert()方法操纵数据库,最终的添加结果将被逐步返回展示给管理员。设计思路阐述如表3.11所示。

表3.11 植物信息添加功能阐述

编号 类名 功能描述

1 plant.jsp 按提示录入植物信息点击保存按钮。随后将输入信息以POST方式提交给PlantshowController。

2 PlantshowController 接受来自JSP页面表单传递的数据,进行处理后传递给PlantshowService。

3 PlantshowService 调用insert()方法,接收并处理PlantshowController传递的数据,随后传递给PlantDao。

4 PlantDao 调用insert()方法操作数据库,完成植物信息添加功能,并返回操作结果。

删除植物信息功能,管理员通过用户名和密码登录至管理员主界面,选择植物管理,点击植物展示按钮,即可进入植物信息展示界面,选择需要操作的植物信息并点击其右侧删除按钮,此时系统将以弹框的形式给予管理员植物信息删除提醒,再次单击删除按钮,即可将所选植物信息从数据库之中删除,并且植物信息展示界面将不再显示此植物信息。删除植物信息功能的时序图如图3.5所示。

图3.5 植物信息删除功能时序图

植物信息删除功能设计,首先管理员进入植物展示界面,即plant.jsp页面,选择需要操作的植物信息并点击其右侧删除按钮,此时系统将以弹框的形式给予管理员植物信息删除提醒,再次单击删除按钮完成植物信息删除操作。用户需要删除的植物序号将会通过Ajax请求发送至后端服务器,通过PlantshowController接收并传递给PlantshowService进行结果处理,进而再传递给PlantDao,PlantDao会调用delete()方法操纵数据库,最终的删除结果将被逐步返回展示给管理员。设计思路阐述如表3.12所示。

表3.12 植物信息删除功能阐述

编号 类名 功能描述

1 plant.jsp 按需求点击对应植物信息右侧删除按钮。随后将请求以POST方式提交给PlantshowController。

2 PlantshowController 接受来自JSP页面传递的请求和植物序号信息,进行处理后传递给PlantshowService。

3 PlantshowService 调用delete()方法,接收并处理PlantshowController传递的数据,随后传递给PlantDao。

4 PlantDao 调用delete()方法操作数据库,完成植物信息删除功能,并返回操作结果。

修改植物信息功能,管理员通过用户名和密码登录至管理员主界面,选择植物管理,点击植物展示按钮,即可进入植物信息展示界面,选择需要操作的植物信息并点击其右侧修改按钮,按照要求在修改框中输入待修改的植物信息,输入完成后点击修改按钮,即可将新的植物信息修改数据库。同时植物信息展示界面将显示修改后的植物信息。修改植物信息功能的时序图如图3.6所示。

图3.6 植物信息修改功能时序图

植物信息修改功能设计,首先管理员进入植物展示界面,即plant.jsp页面,选择需要操作的植物信息并点击其右侧修改按钮,根据提示在修改框中输入待修改的植物信息,单击修改按钮完成信息修改操作。用户修改后的植物信息将会通过Ajax请求传送至后端服务器并且通过PlantshowController接收并传递给PlantshowService进行结果处理,进而再传递给PlantDao,PlantDao会调用update()方法操纵数据库,最终的修改结果将被逐步返回展示给管理员。设计思路阐述如表3.13所示。

表3.13 植物信息修改功能阐述

编号 类名 功能描述

1 plant.jsp 根据提示在修改框中输入待修改的植物信息。随后将请求和信息以POST方式提交给PlantshowController。

2 PlantshowController 接受来自JSP页面传递的请求和修改信息,进行处理后传递给PlantshowService。

3 PlantshowService 调用update()方法,接收并处理PlantshowController传递的数据,随后传递给PlantDao。

4 PlantDao 调用update()方法操作数据库,完成植物信息删除功能,并返回操作结果。

查找植物信息功能,管理员通过用户名和密码登录至管理员主界面,选择植物管理,点击植物展示按钮,即可进入植物信息展示界面,点击植物信息查询下拉框,根据提示输入查询信息后,点击查询,即可搜索出相关的植物信息,查询到的植物信息将展示在下方的植物信息列表中,方便管理员查看。查询植物信息功能的时序图如图3.7所示。

图3.7 植物信息查询功能时序图

植物信息查询功能设计,首先管理员进入植物展示界面,即plant.jsp页面,按照要求在查询框中输入要查询的植物名称、植物数量、植物尺寸等一个或两个信息,单击查询按钮完成信息模糊查询操作。用户所输入的查询信息将通过Ajax请求传送至后端服务器并且通过PlantshowController接收并传递给PlantshowService进行结果处理,进而再传递给PlantDao,PlantDao会调用select()方法操纵数据库,最终的查询结果将被逐步返回展示给管理员。设计思路阐述如表3.14所示。

表3.14 植物信息查询功能阐述

编号 类名 功能描述

1 plant.jsp 根据提示在查询框中输入一个或多个植物信息。随后将查询请求和植物信息以POST方式提交给PlantshowController。

2 PlantshowController 接受来自JSP页面传递的请求和查询信息,进行处理后传递给PlantshowService。

3 PlantshowService 调用select()方法,接收并处理PlantshowController传递的数据,随后传递给PlantDao。

4 PlantDao 调用select()方法操作数据库,完成植物信息查询功能,并返回操作结果。

添加绿化管护信息功能,管理员通过用户名和密码登录至管理员主界面,点击养护管理,选择绿化管护按钮,即可进入绿化管护界面,点击绿化管护信息添加下拉框,根据提示输入将要录入的绿化管护信息,点击保存,即可将所输入的绿化管护信息保存至数据库之中,并且在绿化管护界面加载显示。添加绿化管护信息功能的时序图如图3.8所示。

图3.8绿化管护信息添加功能时序图

绿化管护添加功能设计,首先管理员进入绿化管护界面,即hospital.jsp页面,按照要求在添加框中输入需要录入的绿化管护信息,其中包括绿化管护名称、绿化管护地点、绿化管护状态等,通过单击保存按钮完成信息添加操作。用户录入的绿化管护信息将会通过Ajax请求传送至后端服务器通过HospitalController接收并传递给HospitalService进行结果处理,进而再传递给HospitalDao,HospitalDao会调用insert()方法操纵数据库,最终的添加结果将被逐步返回展示给管理员。设计思路阐述如表3.15所示。

表3.15 植物信息添加功能阐述

编号 类名 功能描述

1 hospital.jsp 按提示录入绿化管护信息点击保存按钮。随后将输入信息以POST方式提交给HospitalController。

2 HospitalController 接受来自JSP页面表单传递的数据,进行处理后传递给HospitalService。

3 HospitalService 调用insert()方法,接收并处理HospitalController传递的数据,随后传递给HospitalDao。

4 HospitalDao 调用insert()方法操作数据库,完成绿化管护信息添加功能,并返回操作结果。

删除员工信息功能,管理员通过登录功能进入管理员主界面,选择员工管理模块,单击员工展示按钮,即可跳转至员工信息展示页面,选定待操作的员工信息并单击右侧删除选项,此时系统将以弹框的形式给予管理员员工信息删除提醒,再次单击删除选项,即可在数据库中删除所选员工信息,并且员工展示页面将不再显示删除后的员工信息。删除员工信息功能的时序图如图3.9所示。

图3.9 员工信息删除功能时序图

员工信息删除功能设计,首先管理员进入员工信息展示界面,即staff.jsp页面,选择需要操作的员工信息并点击其右侧删除按钮,此时系统将以弹框的形式给予管理员员工信息删除提醒,再次单击删除按钮完成植物信息删除操作。用户需要删除的员工序号将会通过Ajax请求发送至后端服务器,通过StaffController接收并传递给StaffService进行结果处理,进而再传递给StaffDao,StaffDao会调用delete()方法操纵数据库,最终的删除结果将被逐步返回展示给管理员。设计思路阐述如表3.16所示。

表3.16 员工信息删除功能阐述

编号 类名 功能描述

1 staff.jsp 按需求点击对应员工信息右侧删除按钮。随后将请求以POST方式提交给StaffController。

2 StaffController 接受来自JSP页面传递的请求和员工序号信息,进行处理后传递给StaffService。

3 StaffService 调用delete()方法,接收并处理StaffController传递的数据,随后传递给StaffDao。

4 StaffDao 调用delete()方法操作数据库,完成员工信息删除功能,并返回操作结果。

3.3 本章小结

本章主要通过整体结构设计、数据库设计、核心功能设计等层面方面对植物园管理系统的系统设计进行详细阐述。在详细阐述过程中通过描绘实体关系图、核心功能时序图以及核心功能详细阐述表来展现系统数据库不同实体对象之间的关系以及系统核心功能实现的底层原理。

4 系统的实现

4.1 开发环境

植物园管理系统的操作系统为微软公司最新操作系统Windows 10专业版,CPU为英特尔酷睿i5系列处理器,内存为8G。本系统运用Java Web技术引入B/S结构和SSM框架技术开发完成植物园管理系统。使用Eclipse集成开发工具高效完成系统编码工作,是系统代码便于查看和修改。应用MySQL数据库存储项目数据和用户数据,通过Tomcat服务器轻松系统部署工作。

4.2 开发规范

为了简化系统代码的读取和管理,植物园管理系统在实现过程中严格遵循Java语言命名约定,并创建与系统架构同名的文件夹管理各层代码文件。 其中控制层的文件命名为数据表+Controller。业务层的文件命名为数据表名+ Service。持久层的文件命名为数据表+Dao。用于视图展示的JSP文件统一放置在WEB-INF目录下,其命名与控制层相对应。

4.3 数据库实现

根据数据库部分设计可知,植物园管理系统共使用植物信息表、植物状态表、肥料信息表、植物类型表、景观区信息表、景观区类型表、养护信息表、园区新闻公告表、商品服务信息表、商品服务负责人表、植物园员工信息表、员工类型表、用户信息表、用户类型表、用户状态表等21张数据表。如图4.1所示。

图4.1 植物园管理系统数据表

4.4 核心功能实现

管理员通过用户名密码登陆本系统,进入系统管理员主界面,可以清楚看到主页面的左侧方展示了植物园管理系统的5个导航栏,分别为植物管理、养护管理、员工管理、区域管理和账号管理,鼠标点击一级导航栏上,会展现出二级导航栏的信息。如图4.2所示。

图4.2 植物园管理系统管理员主界面

4.4.1 添加植物信息功能实现

管理员进入系统后,点击植物管理中的植物展示功能,当前位置将从首页切换为植物展示功能位置。植物展示页面为两个部分,其中上侧为操作区,由添加植物信息下拉框和查找植物信息下拉框组成。下侧为当前植物园植物信息展示区。点击添加植物信息下拉框,在添加框中按提示输入植物名称、植物数量、植物尺寸等信息后,点击保存按钮,即可将新的植物信息添加至数据库之中,并且新的植物信息将在植物信息展示区展现出来,信息包括植物序号、植物名称、植物数量等等。功能界面如图4.3所示。

图4.3 添加植物信息功能界面图

其核心代码如下所示。

$("#savePlant").click(function() {

var i; //声明植物对象i存储植物相关信息

i = {

PlantName : $("#PlantNames").val(),

PlantNum : $("#PlantNums").val(),

PlantSize : $("#PlantSizes").val(),

FertilizerId : $("#selectFoods").val(),

PlantTypeId : $("#selectTypes").val(),

PlantStateId : $("#selectStates").val(),

PlantCome : $("#PlantComes").val(),

Description : $("#Descriptions").val()

};

$.ajax({

type : "post", //post请求

datatype : "json",

data : i,

url : "/Arboretum/plant/insert", //请求路径

async : false, //同步

success : function(data) { //返回添加结果

layer.alert("添加成功",{icon:1})

$("#searchPlant").click();//添加成功后刷新植物展示界面

} });

});

4.4.2 删除植物信息功能实现

管理员进入系统后,点击植物管理中的植物展示功能,当前位置将从首页切换为植物展示功能位置。植物信息展示区设有删除按钮,选择需要删除的植物信息并点击删除按钮,系统会给予管理员确认删除提醒,再次点击删除按钮,即可所选植物信息从数据库之中删除,并且植物信息展示区将不再展示已删除植物信息。功能界面如图4.4所示。

图4.4 删除植物信息功能界面图

核心代码如下所示。

deletePlant = function(idx, i){

$("#deleteSuccess").click(function(){

$.ajax({

type:"post",//post请求

datatype:"json",

data:{PlantId:idx},//传入植物序号值,按植物序号进行删除

url:"/Arboretum/plant/delete",//请求路径

async:true,//同步

success:function(data){//返回删除结果

layer.alert("删除成功",{icon:1})

$("#searchPlant").click(); }

});

$("#deleteSuccess").attr("data-dismiss", "modal")//添加关闭弹框

});

};

4.4.3 修改植物信息功能实现

管理员进入系统后,点击植物管理中的植物展示功能,当前位置将从首页切换为植物展示功能位置。植物信息展示区设有修改按钮,点击修改植物信息按钮,根据系统提示在修改框中重新定义植物名称、植物数量、植物尺寸等信息,重新定义完成点击修改按钮,即可将重新定义的植物信息修改至数据库之中,并且植物信息展示区展现出来的数据为修改后植物信息。功能界面如图4.5所示。

图4.5 修改植物信息功能界面图

核心代码如下所示。
KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲updateSuccess")...("#PlantNameu").val(),

PlantNum:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲PlantNumau").va...("#PlantSizeu").val(),

FertilizerId:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲selectFoodu").v...("#selectTypeu").val(),

PlantStateId:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲selectStateu")....("#PlantComeu").val(),

Description:$("#Descriptionu").val()};

$.ajax({

type:"post", //post请求

datatype:"json",

data:a, //传入修改后的植物信息并且按照植物序号修改

url:"/Arboretum /plant/update", //请求地址

async:true, //同步

success:function(data){ //返回修改结果

window.location.reload(); } });

$("#updateSuccess").attr("data-dismiss", "modal"); //关闭弹框

}); };

4.4.4 查询植物信息功能实现

管理员进入系统后,点击植物管理中的植物展示功能,当前位置将从首页切换为植物展示功能位置。选中并点击植物信息展示区中查询下拉框,根据提示属于一个或多个植物信息,点击搜索按钮,均可查询到与此相关的全部植物信息,查询到的结果将展示在下方的植物列表中,信息包括植物序号、植物名称、植物数量、植物尺寸等等。功能界面如图4.6所示。

图4.6 查询植物信息功能界面图

核心代码如下所示。
KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲searchPlant").c...("#AnishowIds").val(),

PlantName:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲PlantNames").va...("#PlantNums").val(),

PlantSize:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲PlantSizes").va...("#selectFoods").val(),

PlantTypeId:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲selectTypes").v...("#selectStates").val(),

PlantCome:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲PlantComes").va...("#Descriptions").val()

}; //定义查询条件

$.ajax({

type:"post", //post请求

datatype:"json",

url:"/Arboretum /plant/select", //请求路径

anysc:false, //同步

data : selectdata, //查询条件

success:function(data){ //查询结果展示

$("#demo-acc-panel-2").removeClass("in");

$("#selectPlantshow").empty();

$.each(data, function(i, item){

var index = item.PlantId;//定义查询后

itemStr = JSON.stringify(item);

tbody = "" + "" + item.PlantId + "" + ""

  • item.PlantName +""+""+ item.PlantNum + ""+ ""
  • item.PlantSize + "" + "" + item.FertilizerId + "" + ""
  • item.PlantTypeId +"" + "" + item.PlantStateId + "" + ""
  • item.PlantCome + "" + "" + item.Description + "" + ""
    $("#selectPlant").append(tbody);//关闭弹框 }); } });
    4.4.5 添加绿化管护信息功能实现
    管理员进入系统后,点击养护管理中的绿化管护功能,当前位置将从首页切换为绿化管护功能位置。点击添加绿化管护信息下拉框,在添加框中按提示输入绿化管护名称、绿化管护地点、管护状态等信息后,点击保存按钮,即可将新的绿化管护信息添加至数据库之中,并且新的绿化管护信息将在绿化管护展示区展现出来,信息包括绿化管护序号、绿化管护名称、地点等等。功能界面如图4.7所示。

图4.7 添加绿化管护信息功能界面图

核心代码如下所示。

$("#saveHospital").click(function() {

var i;

i = {

HospitalName : $("#HospitalNames").val(),

HospitalLocation : $("#HospitalLocations").val(),

HospitalState : $("#HospitalStates").val(),

HospitalNum : $("#HospitalNums").val(),

StaffId : $("#selectStaffs").val(),

Description : $("#Descriptions").val()

}; //接收新录入的绿化管护信息

$.ajax({

type : "post", //post请求

datatype : "json",

data : i,

url : "/Arboretum/hospital/insert", //请求路径

async : false, //同步

success : function(data) { //返回结果

console.log("添加成功");

window.location.reload(); }

});

});

4.4.6 删除员工信息功能实现

管理员进入系统后,点击员工管理中的员工展示功能,当前位置将从首页切换为员工展示功能位置。员工信息展示区设有删除按钮,选择需要删除的员工信息并点击删除按钮,系统会给予管理员确认删除提醒,再次单击删除选项,即可从数据库中删除所选员工信息,同时展示区将不显示已被删除的员工信息。实现效果如图4.8所示。

图4.8 删除前员工功能界面图

核心代码如下所示。

deleteStaff = function(idx, i){ //声明删除员工函数

$("#deleteSuccess").click(function(){

$.ajax({

type:"post",

//post请求

datatype:"json",

data:{StaffId:idx},

//传递员工序号值

url:"/Arboretum/staff/delete",

//请求路径

async:true, //同步

success:function(data){ //返回结果

console.log("删除成功");

window.location.reload();

}

});

$("#deleteSuccess").attr("data-dismiss", "modal");

//关闭弹框

});

};

4.5 本章小结

本章介绍植物园管理系统的实现情况,对系统的研发环境和代码管理规则进行简略阐述,对项目数据表进行简单介绍,并从功能实现截图与核心代码等方面详细阐述系统核心功能。

5 系统测试

5.1 测试目的

系统测试是项目研发过程中不可或缺的重要组成部分,企图通过系统测试来了解系统现阶段存在的缺陷,对于系统漏洞进行摸底检验,以便于系统商用之前得到及时维护和更新,避免用户体验度过低等问题。因此本阶段将对植物园管理系统进行测试,以保证系统给予用户较高的体验度。

5.2 测试计划

为保证本次系统测试工作顺利进行,现阶段制定严谨的系的测试计划。首先确定开发人员兼任测试人员,进而编写测试用例对本系统进行是单元测试和压力测试,在这里以系统的添加、删除、修改、查找植物信息功能,添加绿化管护信息功能和修改员工信息功能6个核心功能模块为例,进行测试。

5.3 测试用例

植物园管理系统的测试用例将以系统的核心功能展开详细阐述,一个核心功能点衍生一条测试用例。在执行测试用例过程中,需要测试人员严格遵守用例要求。接下来将对测试用例和测试结果进行详细阐述。

添加植物信息测试用例,测试人员登录管理员账户,点击植物管理中的植物展示功能,进入植物展示界面点击添加下拉框,分别录入符合系统提示要求和不符合系统提示要求的植物信息,最后点击保存,完成植物信息的添加测试。添加植物信息测试结果如表5.1所示。

表5.1 植物园管理系统添加植物信息测试结果表

编号 测试方法 预期结果 实际结果

1 录入符合系统提示要求的植物信息,点击保存。 添加成功。并将所添加的植物信息展现于植物展示界面。 Pass

2 录入不符合系统提示要求的植物信息,点击保存。 不符合系统提示要求的信息添加失败,并且给予用户添加失败提示。 Pass

3 录入符合系统提示要求的植物信息,点击重置。 录入信息被重置。 Pass

删除植物信息测试用例,测试人员登录管理员账户,点击植物管理中的植物展示功能,进入植物展示界面点击待删除植物信息右侧删除按钮,根据系统提示,分别再次点击删除和关闭按钮,完成植物信息的删除测试。删除植物信息测试结果如表5.2所示。

表5.2 植物园管理系统删除植物信息测试结果表

序号 测试步骤 预期结果 实际结果

1 点击待删除植物信息右侧删除按钮,确认删除。 删除成功。植物展示界面将不包含已经删除的植物信息。 Pass

2 点击待删除植物信息右侧删除按钮,关闭删除。 确认删除提示框消失,植物信息未被删除。 Pass

修改植物信息测试用例,测试人员登录管理员账户,点击植物管理中的植物展示功能,进入植物展示界面点击待修改植物信息右侧修改按钮,根据系统提示,录入符合系统提示要求和不符合系统提示要求的植物修改信息,最后分别点击修改和关闭修改,完成植物信息的修改测试。修改植物信息测试结果如表5.3所示。

表5.3 植物园管理系统修改植物信息测试结果表

编号 测试方法 预期结果 实际结果

1 按系统提示要求录入植物修改信息,点击修改。 修改成功。植物展示界面显示修改后的植物信息。 Pass

2 录入不符合系统提示要求植物修改信息,点击修改。 修改失败,给予用户修改失败提示。 Pass

3 按系统提示要求录入植物修改信息,点击关闭。 修改框关闭,植物信息未被修改。 Pass

查询植物信息测试用例,测试人员登录管理员账户,点击植物管理中的植物展示功能,进入植物展示界面点击查询下拉框,输入植物名称或者其他多个植物信息值,单击查询选项,就可在数据库之中模糊查询与之匹配的植物信息,进而完成植物信息查询测试。查询植物信息测试结果如表5.4所示。

表5.4 植物园管理系统查询植物信息测试结果表

编号 测试方法 预期结果 实际结果

1 输入植物名称,点击查询。 查询成功。植物展示界面显示查找出的植物信息。 Pass

2 输入植物名称和植物数量,点击查询。 查询成功。植物展示界面显示查找出的植物信息。 Pass

3 输入植物名称、植物数量、入园时间,点击查询。 查询成功。植物展示界面显示查找出的植物信息。 Pass

添加绿化养护信息测试用例,测试人员登录管理员账户,点击养护管理中的绿化管护功能,进入绿化管护界面点击添加下拉框,分别录入符合系统提示要求和不符合系统提示要求的绿化管护信息,最后点击保存,完成绿化管护信息的添加测试。添加绿化管护信息测试结果如表5.5所示。

表5.5 植物园管理系统添加绿化管护信息测试结果表

编号 测试方法 预期结果 实际结果

1 录入符合系统提示要求的绿化管护信息,点击保存。 添加成功。绿化管护展示界面数据更新。 Pass

表5.5续页

序号 测试步骤 预期结果 实际结果

2 录入不符合系统提示要求的绿环管护信息,点击保存。 添加失败,给予用户添加失败提示。 Pass

3 录入符合系统提示要求的绿化管护信息,点击重置。 录入信息被重置。 Pass

删除员工测试用例,测试人员登录管理员账户,单击员工管理中员工展示选项,进入员工展示页面。单击员工信息右侧删除选项,再次分别单击关闭和删除选项,完成员工信息删除测试。删除员工信息测试结果如表5.6所示。

表5.6 植物园管理系统删除员工信息测试结果表

序号 测试步骤 预期结果 实际结果

1 点击待删除员工信息右侧删除按钮,确认删除。 删除成功。植物展示界面将不包含已经删除的植物信息。 Pass

2 点击待删除员工信息右侧删除按钮,关闭删除。 确认删除提示框消失,植物信息未被删除。 Pass

5.4 压力测试

为使测试工作按照原测试计划正常进行,本系统选取Apache Jmeter开源测试工具进行测试。首先从官网获取Apache Jmeter安装包,安装应用程序并完成其系统配置。随后进入应用界面,点击new添加一个线程组,配置线程属性,其中线程数为2000,Ramp-Up时间为1秒,循环次数为1次,完成后添加HTTP请求,并根据植物园管理系统项目部署信息完成HTTP请求配置,让Apache Jmeter可以对植物园管理系统进行访问。具体的配置信息如图5.1所示。

图5.1 植物园管理系统测试工具环境配置

完成Apache Jmeter测试工具访问植物园管理系统配置后,设置线程组中汇总报告和图形结果监听器有助于测试人员分析测试结果,当线程组启动测试工作后,能够清晰地查看压测途中系统异常比率、平均值、中值、标准偏差、吞吐量等信息值的波动情况[20],如图5.2植物园管理系统压力测试聚合报告图和5.3植物园管理系统压力测试图形结果图所示。

图5.2 植物园管理系统压力测试聚合报告图

图5.3 植物园管理系统压力测试图形结果图

通过上述的测试结果,可以明显看出Apache Jmeter在此次测试访问植物园管理系统时异常率为0,而且系统请求和响应偏离值属于正常范围,甚至在请求访问时吞吐量可高达15898.251/min,足以证明本系统具有较好稳定性并且满足植物园管理者和游客的基本需求。

5.5 本章小结

本章主要对植物园管理系统测试工作进行详细阐述说明,通过制定测试计划,编写测试用例完成系统核心功能测试和压力测试,并且对压力测试数据进行分析,依据测试结果来看,本系统具有较好稳定性并且满足植物园管理者和游客的基本需求。

结 论

植物信息管理是植物园管理工作的重要组成部分,其精准快捷地操作对于植物园日常信息管理具备重大意义。因此,本文针对大多数植物园的紧迫需求,设计并实现了植物园管理系统。本文首先对植物园管理系统基本需求和发展历程进行调研分析,进而确定构建植物园管理系统所需要解决的一系列问题,最后对植物园管理系统的设计和具体实现方法进行细致阐述说明。本文所开发的植物园管理系统已经全部设计完成。可以基本满足各植物园对于园内日常信息管理的业务需求。

本文系统在设计与实现的过程中充分考虑系统可维护性和将来的用户需求变动等问题,具有代码重用性强,系统可伸缩性好,安全性高等特点,所采用的SSM技术保障了系统具备拓展性强的优势。实际应用效果说明了本系统设计的合理性与有效性。

本系统的设计与实现能够高效地融入到植物园日常事务管理中,可增强植物园对园内信息管理的有效性。但是出于时间紧迫,任务量重等原因,本系统还存有些许的不足。例如目前能够给与的游客功能还比较少,这些需要在往后更新工作中进一步完善。

致 谢

在这里,我首先要感谢悉心教育我四年的各位老师们,更加感谢我的毕业设计指导老师朱元华老师和刘建生老师。从毕业设计选题到项目的最终完成,两位老师给了我许多有价值的建议,是我这段时间内的指路明灯。每次寻找指导老师进行项目指导时,两位老师都能准确快速的判断我所犯下的错误并给出详细的修改建议,每次听完指导老师给予的建议,思路瞬间就变得开阔,正是因为两位老师的不断帮助,毕业设计才可以顺利完成。虽然毕业设计时间不是很长,但是这短短的几个月我不仅从指导老师那里学到专业相关的知识,还学到两位老师身上许多为人处事的道理,在未来的发展中也一定有深远的影响可谓受益匪浅,非常感谢朱元华老师和刘建生老师。

时光荏苒,岁月如梭,在沈阳城市学院度过了四年的学业,不仅让我系统地学习了计算机的各方面知识,还开拓了我的视野,充实了我的生活,让我学到很多做人、做事、做学问的道理,在此,向所有帮助和支持过我的领导,老师和朋友致以崇高的敬意,没有您们的关心和帮助,也就没有我的进步。

参考文献

[1] 李亚,顾姻,夏如红.植物园活植物信息管理计算机化的现状及前景[J].植物资源与环境,1997(02):49-54

[2] 李飞.植物信息管理计算机化技术简述[J].农家之友(理论版),2008(06):57-58

[3] 刘昊,李民.基于SSM框架的客户管理系统设计与实现[J].软件导刊,2017,16(07):87-89

[4] 孙乐康.基于SSM框架的智能Web系统研发[J].决策探索(中),2019(05):93

[5] 龚兰兰,凌兴宏.基于敏捷开发的SSM Web应用开发实践[J].实验技术与管理,2020,37(02):160-163+167

[6] Qimei Chen,Hongbo Shi. Design and implementation of domain knowledge service platform based on spring framework[J]. Proceedings of the Association for Information Science and Technology,2017,54(1)

[7] JieHao. Design and Implementation of College Student Information Management System based on MVC[J]. Journal of Residuals Science & Technology,2016,13(5)

[8] 姚云飞,杜洪波,梁建辉.基于SpringMVC框架毕业设计管理系统设计[J].软件,2018,39(01):91-93

[9] 邹红霆.基于SSM框架的Web系统研究与应用[J].湖南理工学院学报(自然科学版),2017,30(01):39-43

[10] 乔岚.基于MyBatis和Spring的JavaEE数据持久层的研究与应用[J].信息与电脑(理论版),2017(08):73-76

[11] 徐雯,高建华.基于Spring MVC及MyBatis的Web应用框架研究[J].微型电脑应用,2012,28(07):1-4+10

[12] 潘瑞远.浅谈JAVA中JSON的应用------以天气预报数据接口为例[J].信息通信,2019(05):174-175

[13] Geoff Langdale,Daniel Lemire. Parsing gigabytes of JSON per second[J]. The VLDB Journal,2019,28(6)

[14] 先巡,袁军.Ajax/Javascript在网页中的特效应用[J].黔南民族师范学院学报,2019,39(S1):100-103

[15] 张超.响应式网站的设计与开发[J].电子测试,2015(16):4-5+3

[16] 王琴.基于Bootstrap技术的高校门户网站设计与实现[J].哈尔滨师范大学自然科学学报,2017,33(03):43-48

[17] D Puspitasari,P P Arhandi,P Y Saputra,Y W Syaifudin,H A Himawan,P A Sholihah. Online judge MySQL for learning process of database practice course[J]. IOP Conference Series: Materials Science and Engineering,2019,523(1)

[18] Lan Mi. The Outline Design of Students' Schedule Management System Based on B/S Mode[J]. MATEC Web of Conferences,2016,44

[19] JSP Journal Operations report[J]. Journal of School Psychology,2018,70

[20] 佘青.利用Apache Jmeter进行Web性能测试的研究[J].智能计算机与应用,2012,2(02):55-57

[21] 李金萍,程满玲.Eclipse的应用发展[J].电脑编程技巧与维护,2016(16):31-32+58

[22] László Viktor Jánoky,János Levendovszky,Péter Ekler. An analysis on the revoking mechanisms for JSON Web Tokens[J]. International Journal of Distributed Sensor Networks,2018,14(9)

[23] 刘立,赵建军,张锦鹏,余进.JSON与XML动态转换研究及应用[J].软件导刊,2018,17(11):162-166

[24] 蒲冬梅.软件项目可行性分析评审的要点[J].电子技术与软件工程,2017(24):54-55

[25] 王琴.基于Bootstrap技术的高校门户网站设计与实现[J].哈尔滨师范大学自然科学学报,2017,33(03):43-48

相关推荐
ever_up9732 小时前
EasyExcel的导入与导出及在实际项目生产场景的一下应用例子
java·开发语言·数据库
ok!ko3 小时前
设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)
java·开发语言·设计模式
丷丩4 小时前
一个Java中有用的JacksonUtil类
java·json·工具
爱摄影的程序猿4 小时前
JAVA springboot面试题今日分享
java·spring boot·spring·面试
qq_317060954 小时前
java之http client工具类
java·开发语言·http
ZJKJTL4 小时前
Spring中使用ResponseStatusExceptionResolver处理HTTP异常响应码
java·spring·http
莫莫向上成长5 小时前
Javaweb开发——maven
java·maven
说书客啊5 小时前
计算机毕业设计 | springboot旅行旅游网站管理系统(附源码)
java·数据库·spring boot·后端·毕业设计·课程设计·旅游
一只爱吃“兔子”的“胡萝卜”5 小时前
八、Maven总结
java·maven
愿尽5 小时前
JavaWeb【day11】--(SpringBootWeb案例)
java·spring boot