摘要:随着全球一些稀有物种、野生动物日益稀少,保护动物已经成为全球多个国家开始重视并投入大量物力着手解决的重要课题。动物是大自然的产物,自然界是由许多复杂的生态系统构成的。有一种植物消失了,以这种植物为食的昆虫就会消失。某种昆虫没有了,捕食这种昆虫的鸟类将会饿死;鸟类的死亡又会对其他动物产生影响。所以,大规模野生动物毁灭会引起一系列连锁反应,产生严重后果。加之目前我国的动物保护体系并不完整,动物保护理念还不是特别强。
因此,设计开发一个完善的保护动物管理系统,不仅能够提高动物保护的信息化管理,也能够完善保护动物的体系,让更多的动物保护数据得到高效率采集;减少人力浪费节约人力成本;增强数据分析;完善保护动物的体系。
关键词:动物保护;SSM;MySQL;JavaWeb;
第1章 绪论
1.1研究背景
保护动物是人类社会的重要责任,也是保护自然环境的必要措施。然而,随着人类社会的发展和城市化进程的加速,野生动物的生存环境受到了严重的威胁,一些珍稀物种甚至濒临灭绝。因此,建立一套完善的保护动物管理系统,对于加强野生动物的保护和管理具有重要意义。 传统的保护动物管理方式主要依靠人工管理,存在工作量大、效率低、信息不及时等问题。随着信息技术的发展,建立一套基于互联网的保护动物管理系统成为了必然趋势。基于互联网的保护动物管理系统可以实现信息共享、数据统计、监测预警、在线交流等功能,能够提高野生动物保护的效率和质量。 JavaWeb技术是一种基于Java语言的Web应用程序开发技术,具有跨平台性、安全性、稳定性、可扩展性和可维护性等优点。
因此,基于JavaWeb技术的保护动物管理系统具有以下优点: 首先,JavaWeb技术具有跨平台性,可以在不同的操作系统上运行,不受硬件、操作系统和浏览器等限制,能够实现真正的跨平台和跨浏览器。 其次,JavaWeb技术具有良好的安全性和稳定性,能够保障系统的可靠性和稳定性。JavaWeb技术采用了多层架构和安全机制,能够有效地防止网络攻击和数据泄露等问题。 此外,JavaWeb技术还具有良好的可扩展性和可维护性,能够方便地进行系统升级和维护。JavaWeb技术采用了模块化设计和面向对象编程思想,能够更好地实现系统的可扩展性和可维护性。 基于JavaWeb技术的保护动物管理系统可以实现野生动物信息的采集、管理和共享,能够方便野生动物保护机构进行数据统计和监测预警等工作。此外,基于JavaWeb技术的保护动物管理系统还可以实现在线交流和信息共享,能够促进野生动物保护机构之间的交流和合作。
综上所述,基于JavaWeb技术的保护动物管理系统是一种有效的解决方案,可以帮助野生动物保护机构更好地管理和保护野生动物,提高野生动物保护的效率和质量。
1.2研究目的
本研究的目的是基于JavaWeb技术设计和实现一套保护动物管理系统,以提高野生动物保护的效率和质量。 具体来说,本研究的目的包括以下几个方面:
(1) 建立一套完善的野生动物信息管理系统。通过采集、整理和管理野生动物的相关信息,实现对野生动物的全面监测和管理,为野生动物保护机构提供准确、及时的数据支持。
(2) 实现野生动物保护机构之间的信息共享和交流。野生动物保护工作需要各个机构之间的合作和协调,因此,本研究旨在建立一套信息共享和交流平台,促进各个机构之间的沟通和合作。
(3) 提高野生动物保护的效率和质量。基于JavaWeb技术的保护动物管理系统具有良好的可扩展性和可维护性,能够方便地进行系统升级和维护,提高野生动物保护的效率和质量。
(4) 提高野生动物保护工作的公开透明度。通过建立一套在线信息管理系统,实现野生动物保护工作的公开透明,让社会各界更好地了解野生动物保护工作的进展和成果。 总之,本研究旨在利用JavaWeb技术建立一套高效、可靠、安全的保护动物管理系统,为野生动物保护工作提供有效的支持和保障。同时,本研究还旨在促进各个野生动物保护机构之间的合作和协调,提高野生动物保护的整体水平和质量。
1.3研究意义
保护动物是人类社会的重要任务之一,而动物保护管理系统的建设是实现这一目标的重要手段。基于JavaWeb的保护动物管理系统具有以下研究意义:
- 提高动物保护管理效率 传统的动物保护管理方式主要依靠人工操作,效率低下、易出现错误,而基于JavaWeb的保护动物管理系统可以实现信息化管理,提高管理效率,减少人为误差,从而更好地保护动物资源。
- 优化动物资源管理 动物资源是人类社会的重要资源之一,保护动物资源是实现可持续发展的必要条件。基于JavaWeb的保护动物管理系统可以对动物资源进行全面、系统的管理,优化资源配置,实现资源的科学利用,更好地保护动物资源。
- 提高动物保护管理水平 基于JavaWeb的保护动物管理系统可以实现对动物的全面、科学、规范的管理,通过数据分析和统计,可以发现动物保护管理中存在的问题,及时采取措施进行改进,提高动物保护管理水平。
- 促进动物保护意识的普及 基于JavaWeb的保护动物管理系统可以实现对动物资源的全面、科学、规范的管理,可以为公众提供更加全面、准确、及时的动物保护信息,促进公众对动物保护的关注和认识,进而提高全社会的动物保护意识。 综上所述,基于JavaWeb的保护动物管理系统具有重要的研究意义,可以提高动物保护管理效率、优化动物资源管理、提高动物保护管理水平、促进动物保护意识的普及,为实现动物保护的目标提供有力的支持。
1.4研究内容
本文各章节内容安排如下:
第一部分:绪论。介绍了系统的研究背景及意义、研究目的及其研究内容[6];
第二部分:关键技术及开发工具。主要介绍了系统在开发过程中使用到的开发技术、开发工具。
第三部分:系统分析与系统设计。主要介绍了系统开发前的需求分析、可行性分析、设计原则、数据库设计及其系统总体设计。
第四部分:系统详细设计与实现。主要介绍系统核心功能的详细设计、实现的核心代码及效果图。
第五部分:系统测试。主要介绍了系统的测试目的、测试步骤及其部分功能测试过程及结果[6]。
第六部分:结论。主要对全文工作的总结,并阐述了未来仍需改进的方面。
第2章 关键技术及开发工具
2.1开发技术选择
2.1.1 SSM框架
SSM是Spring、MyBatis、SpringMVC三个框架进行整合而来。Spring作为项目里的大工厂,用于装配Bean,通过配置文件对对象进行实例化。MyBatis是把JDBC进行了封装,只需关注sql语句,并且将数据库表和实体类及实体类的属性进行对应,操作实体类就实现操作数据库表。SpringMVC是用于进行请求的拦截,核心Servlet就是DispatcherServlet。
Spring是名为Rod Johnson的专家开发出的轻量级的控制反转(Ioc)和面向切面编程(Aop)的容器框架,并且它是一个对使用者开源免费的框架。它的主要目的就是尽可能地减少企业级应用在开发中的繁琐性,主要核心内容有四部分:Bean、Core、Context和SpEL。
SpringMvc是Spring的一个子框架,通过把Controller(控制层)、Model(模块层)和View(显示层)分离,把比较复杂的Web应用开发分成逻辑清晰的几个部分,简化了开发,减少了编码过程中的错误。
Mybatis是一个持久化层半自动ORM框架。它是对Jdbc的封装,通过实现JPA规范从而连接数据库并对其进行增删改查的操作,消除了Jdbc大量的冗余代码,不需要手动开关连接。并且能够和Spring很好的集成。
2.1.2 Java
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,Java Servlet API,Spring Boot(Java Server Pages),和XML技术。Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,开发者只需要知道一些概念就能够编写出一些应用程序。Java程序相对较小,其代码能够在小机器上运行。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。
Java语言和一般编译器以及直译的区别在于Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。
2.1.3 B/S结构
B/S( Browser/Server,浏览器/服务器)模式又称B/S结构。它是随着Internet技术的兴起,对C/S 模式应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WANInternet/Intranet等)访问和操作共同的数据;最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。
随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器)服务器结构。B/S模式最大特点是:用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的Web服务器产生的,而每一个 Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了WWW浏览器,一般无须任何用户程序,只需从Web 服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。就是在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。
2.1.4 JSP
JSP是一种动态网页技术标准,简称(JavaServer Pages)。它是在传统的Html中加入Java代码形成的文件,可为用户提供动态数据。JSP开发的WEB应用是跨平台的,在不同操作系统下都可运行。JSP分离了网页逻辑与网页设计和显示,支持设计可重用的组件,让开发基于WEB的应用更迅速容易。
2.2 系统开发工具
2.2.1 Intellij IDEA
IntelliJ IDEA简称IDEA ,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(Git、Svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。IDEA所提倡的是智能编码,是减少程序员的工作,IDEA的特色功能有智能的选取、丰富的导航模式、历史记录功能、编码辅助记忆、排版灵活等特色服务,更好的帮助开发者提高开发效率。
2.2.2 Tomcat 7
Tomcat属于一种轻型的服务器,所以说在中小企业中并不具有普适性。但是当程序员需要开发或调试JSP 程序时,则通常会将该服务器作为首选。对于一个仅具有计算机基础知识的人来说,计算机系统具有一个好的Apache服务器,可以很好的对HTML 页面进行访问。Tomcat 虽然是Apache的扩展,但是它们都是可以独立运行的,二者是不互相干扰的。当配置正确的时候,Apache服务器为HTML 页面的运行提供技术支持,Tomcat 的任务则是运行Servlet和JSP 页面。Tomcat也具有一定的HTML页面处理功能。
2.2.3 Mysql
数据库是系统开发过程中不可或缺的一部分。在WEB应用方面,MySQL AB开发了一个具有很大优势的Mysql关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。
在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的客户端就可以连接数据库,客户端可通过命令行或者图形界面工具登录数据库。
2.2.4 Navicat Premium
Navicat Premium是一套数据库开发工具,可以从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL和SQLite数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。可以快速轻松地创建、管理和维护数据库。
2.2.5 Layui
layui是一套开源的Web UI解决方案,采用自身经典的模块化规范,并遵循原生 HTML、CSS、JS的开发方式,可帮助开发者快速构建网页界面。layui区别于部分基于MVVM底层的前端框架,主要面向后端开发者,无需依赖各种前端技术,只需依赖浏览器本身,让一切所需要的元素与交互。
第3章 系统分析与系统设计
3.1需求分析
经过百余年发展,保护动物的观念在世界产生了重要影响。随着尊重动物的意识不断增强,动物权利不断扩大,为了使人们更懂得尊重自然,保护动物生命的价值。通过对动物进行统一管理,方便根据不同动物种类划分,方便对动物健康状况监测,饲养监控比较方便,削减后期人员投入,节省运营成本。因此,为了便于进一步加强保护动物管理,实时监控动物的健康状况,设计一个成本低、功耗小的保护动物管理系统尤为重要。
其提供的主要功能包括前台信息展示系统和后台管理系统两部分。后台管理系统主要是对动物信息管理、动物类型管理、饲养员管理、饲养规范管理、动物日常管理、动物健康管理、用户管理等。管理员可以对动物保护信息等进行信息的添加、修改、删除、查询等操作,输入信息后,若信息正确,会将其操作内容更新到数据库内。前台信息展示系统主要给用户提供了解保护动物信息、动物类型、饲养规范等信息的浏览展示等操作。用户登录注册后台系统主要提供用户注册账号、完善及修改个人信息、等操作。
3.2可行性分析
3.2.1 技术可行性
从技术可行性上来说,Spring框架是一个免费的、开源的轻量级框架;不仅极大简化了复杂应用开发的难度,还可以整合并兼容Mybatis、SpringMVC等开源框架。Mybatis框架不仅能够极大的简化与数据库交互的过程,更能发挥出数据库的最优的性能。SpringMVC框架是一种轻量级的Web开发框架,能够针对视图层进行解耦合,使得各个模块之间能够分工明确,极大的降低不同模块之间的耦合性。通过Idea开发工具,利用Java语言、Html、css、SSM及数据库等技术完成对开系统前后端的开发。Idea工具使用简单,功能齐全并且可以通过开放的源代码及技术交流群寻求帮助。在大学中都有所学习,并且在网上有许多相关案例可以借鉴。综上所述,该系统的开发在技术上具有可行性。
3.2.2 经济可行性
从经济可行性上来说,本系统所采用的软件和技术均是免费开放源代码的,可以有效地减少开发费用,因此在经济上也是具有可行性的。当这个系统发行后,可以通过收取手续费,广告费等形式来获取利润。
3.2.3 操作可行性
从操作可行性上来说,本系统以浏览器访问为基础实现,因此操作简单、使用方便,无需下载,无需安装,通过浏览器打开系统即可使用。并且该系统前后端页面简单明了,便于用户使用。
3.2.4 社会价值方面
从社会价值方面来说,本课题开发的是一套具有宣传和科普作用的保护动物系统,普通用户可以通过此系统实现保护动物的信息的学习、了解;管理员可以通过此系统大大提高动物信息管理的信息化水平、管理效率;不仅仅能够更好的提高采集动物相关信息的效率和实时性,也能够提升人们保护动物理念加强,加快完善保护动物体系。
3.3系统设计原则
本动物保护管理系统采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。
动物保护管理系统的设计与实现的设计思想如下:
(1)操作简单方便、系统界面安全良好:简单明了的页面布局,方便查询动物保护系统管理的相关信息。
(2)即时可见:对动物保护系统信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。
(3)功能的完善性:可以管理首页、动物饲养规则、动物信息、动物日常、用户管理、部门管理、角色管理、动物信息、类型管理等功能的修改和维护操作。
3.4数据库设计
系统正常运作的关键所在是数据库。Mysql是开源免费的轻量级关系型数据库,不需要支付额外的费用,使用成本低。其次它体积小、运行速度快、支持多线程、充分利用CPU资源、优化的SQL算法、有效的提高查询速度。
3.4.1数据库需求分析
在用户的角度来说,数据库的需求主要体现在对数据库表的增删改查。因此,数据库结构需同时满足两个要素:输入、输出。在进行数据设计时,首先需收集数据,然后分析数据结构,最后处理数据。根据本系统的需求,设计以下主要的数据项和数据结构:
(1) 管理员实体:表id、账户名、真实的姓名、密码、性别、部门、角色、状态、最后一次登录时间。
(2) 角色实体:表id、角色名称、启用状态。
(3) 部门实体:表id、部门名称、部门编号、启用状态。
(4) 资源实体:表id、资源名称、资源URL、父级资源id、资源标志。
(5) 首页大图实体:表id、图片路径。
(6) 饲养员实体:表id、饲养员编号、饲养员名字、饲养员手机号、饲养员简介、照片。
(7) 健康管理实体:表id、动物名称、饲养员、记录时间、健康情况记录。
(8) 日常管理实体:表id、动物名称、饲养员、记录时间、日常情况记录。
(9) 动物信息实体:表id、动物名称、类型、记录时间、详情。
(10) 动物类型实体:表id、动物类型。
(11) 饲养规范实体:表id、标题、录入时间、内容详情、录入人。
3.4.2数据库设计原则
在具体进行概念设计的时候,通常是包括的设计方式有渐进扩张、自上而下、混合策略以及自下而上。在针对局部设计的过程中,主要使用的是自上而下,而物理结构的具体设计主要包括两个阶段:首先是对数据库物理结构进行定义,其次,存取关系模型的方式一定要选择正确。
3.4.3概念设计
根据需求分析和业务流程,通过对系统中所涉及的用户、动物、动物类型类型等现实世界中存在的事务物所具有的各种属性进行归类,合并和总结,从而建立起抽象的数据概念模型。根据这个模型可以充分反映现实世界的信息结构、信息流动状况、信息之间的制约关系以及对信息进行增删改查的操作等。
3.4.4数据库表结构设计
(1)后台管理员表(admin)表
用于存储后台管理员的用户名、密码等基本信息。
表3.1 后台管理员表(admin)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
realname | 真实姓名 | varchar | 20 |
username | 用户名 | varchar | 20 |
pwd | 密码 | varchar | 20 |
sex | 性别 | int | 0 |
deptId | 部门id | int | 0 |
roleId | 角色id | int | 0 |
status | 状态 | int | 0 |
lastLogin | 最后登录时间 | varchar | 20 |
(2)部门表(s_dept)表
用于存储部门的部门编号、部门名称等基本信息。
表3.2 部门表(s_dept)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
deptName | 部门名称 | varchar | 20 |
deptCode | 部门编号 | varchar | 20 |
userId | 用户id | int | 0 |
status | 最状态 | int | 0 |
(3)角色表(s_role)表
用于存储角色的角色名称、状态等基本信息。
表3.3 角色表(s_role)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
roleName | 角色名称 | varchar | 20 |
status | 状态 | int | 0 |
(4)首页大图表(banners)表
用于存储大图的的id、图片路径等基本信息。
表3.4 首页大图表(banners)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
pic | 图片路径 | varchar | 255 |
(5)饲养员表(breeder)表
用于存储饲养员的的id、饲养员编号、名字、手机号等基本信息。
表3.5 首页大图表(breeder)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
code | 饲养员编号 | varchar | 255 |
name | 饲养员名字 | varchar | 255 |
phone | 饲养员手机号 | varchar | 255 |
description | 饲养员简介 | text | 0 |
pic | 照片 | varchar | 255 |
(6)日常管理(dailty)表
用于存储日常管理的的id、动物名称、饲养员、记录时间等基本信息。
表3.6 日常管理(dailty)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
norname | 动物名称 | varchar | 255 |
syy | 饲养员 | varchar | 255 |
jlsj | 记录时间 | varchar | 255 |
description | 日常描述 | varchar | 255 |
(7)健康管理(dailty)表
用于存储健康管理的的id、动物名称、饲养员、记录时间、健康情况等基本信息。
表3.7 健康管理(dailty)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
name | 动物名称 | varchar | 255 |
syyuan | 饲养员 | varchar | 255 |
jlsj | 记录时间 | varchar | 255 |
description | 健康情况记录 | text | 0 |
(8)动物信息管理(normal)表
用于存储动物信息管理的的id、动物名称、类型录入时间等基本信息。
表3.8 动物信息管理(normal)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
name | 名称 | varchar | 255 |
type | 类型 | varchar | 255 |
lrtime | 录入时间 | varchar | 255 |
description | 详情 | text | 0 |
(9)动物类型管理(normaltype)表
用于存储动物类型管理的的id、动物名称、类型录入时间等基本信息。
表3.9 动物类型管理(normaltype)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
typeName | 类型名称 | varchar | 255 |
(10)饲养规范管理(standard)表
用于存储饲养规范管理的的id、标题、录入时间、内容详情等基本信息。
表3.10 饲养规范管理(standard)表
字段名称 | 描述 | 数据类型 | 值域 |
id | id | int | 0 |
title | 标题 | varchar | 255 |
lrdate | 录入时间 | varchar | 25 |
description | 内容详情 | text | 0 |
lrpeople | 录入人 | varchar | 255 |
3.5系统总体设计
3.5.1设计方案
系统开发主要是采用java语言技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据动物保护管理系统的现状来进行开发的,具体根据现实的需求来实现动物保护网络化的管理,各类信息有序地进行存储,进入该系统页面之后,方可开始查看主界面,主要功能包括管理员:banner图管理、系统设置、动物类型管理、动物信息管理、动物日常管理、动物健康管理等。用户前台:首页、动物信息、饲养规范信息等功能。
整个系统的功能模块主要是对各个项目元素组合、分解和更换做出对应的单元,最后在根据各个系统模块来做出一个简单的原则,系统的整体设计是根据用户的需求来进行设计的。为了更好的服务于用户要从动物保护管理系统的设计与实现方面上做出相应的功能模块和内部信息保持一致的联系。所以我们在设计时候要避免一些代码的相互的重复和耦合的情况发生。
3.5.2系统开发流程
在系统流程分析当中调查分析它是比较重要的环节,因为在这个系统当中它都涉及到每个环节的业务流程,所以从动物保护系统的整体设计上要保证各个信息的正确输入和输出以及对数据储存的完整,并结合实际的操作步骤来绘制出具体的流程图。
图3.2 系统开发流程图
3.5.3登录流程
图3.3 登录流程图
第4章 系统详细设计与实现
4.1 用户模块
4.1.1首页模块
该界面是该系统的首页,界面设置要求界面简洁明了、操作简单、兼容性好。在考虑设计界面时,首先要考虑界面标准化设计,其次是完善界面设计,但不要因对界面的美化使界面的操作变得复杂,使用者可在此页面进行登录等操作,页面顶部导航条是各模块的入口。
前台首页页面主要包括首页、动物信息、饲养规范、饲养员、动物健康、动物日常等内容,并根据需要进行详细操作;如图4.1所示:
图4.1首页界面图
4.1.2动物信息模块
该界面是动物信息展示模板,呈现给用户欣赏查看。主要将后台管理的动物信息进行展示,让人们了解更多动物相关的信息。如图4.2所示:
图4.2动物信息界面图
4.1.3饲养规范模块
该界面是饲养规范展示模块,呈现给用户相关动物的饲养规范。主要将后台管理的饲养规范进行展示,让人们了解更多保护动物相关的信息。如图4.3所示:
图4.3饲养规范界面图
4.1.4饲养员模块
该界面是饲养员展示模块,呈现给用户相关饲养员的信息,让人们了解动物饲养员的专业性。主要将后台管理的饲养员信息进行展示,让人们了解更多饲养员的专业性、规范性。如图4.4所示:
图4.4饲养员界面图
4.1.5动物健康模块
该界面是动物健康展示模块,呈现给用户相关动物健康的信息,让人们了解动物的健康状况。主要将后台管理的饲养员录入的健康状况展示出来,让人们随时随地了解动物的健康状况。如图4.5所示:
图4.5动物健康界面图
4.1.6动物日常模块
该界面是动物日常展示模块,呈现给用户相关动物日常的信息,让人们了解动物的日常状况。主要将后台管理的饲养员录入的日常展示出来,让人们随时随地了解动物的日常状况。如图4.6所示:
图4.6动物日常界面图
4.2管理员模块
4.2.1饲养员管理模块
饲养员管理模块,在饲养员管理页面可以查看编号、名字、手机号、图片等内容,进行详情、修改和删除等操作,如图4.7所示:
图4.7饲养员管理界面图
实现代码:
//分页查询
PageInfo<Breeder> page = breederService.selectBreederByPage(breeder,pageNumber,pageSize);
LhPage lhpage = new LhPage(page);
//更新
breederService.update(breeder);
//保存
breederService.save(breeder);
//删除
breederService.delete(id);
//图片上传
String realPath = request.getRealPath("/");
String fileName_o = file.getOriginalFilename();
UUID uuid = UUID.randomUUID();
File f = new File(realPath+"/upload/"+fileName_n);
file.transferTo(f);
Map map = new HashMap();
map.put("picName",fileName_n);
4.2.2动物管理模块
动物管理模块,在动物管理页面可以查看动物名称、类型等内容,进行查询、编辑和删除等操作,如图4.8所示:
图4.8动物管理界面图
实现代码:
//分页查询
PageInfo<Normal> page = normalService.selectNormalByPage(normal,pageNumber,pageSize);
//更新
normalService.update(normal);
//保存
normalService.save(normal);
//删除
normalService.delete(id);
4.2.3动物类型管理模块
动物类型管理模块,在动物类型管理页面可以查看类型名称等内容,进行查询、编辑和删除等操作,如图4.9所示:
图4.9动物类型管理界面图
实现代码:
//分页查询
PageInfo<Normaltype> page = typeService.selectTypeByPage(normaltype,pageNumber,pageSize);
LhPage lhpage = new LhPage(page);
//更新
typeService.update(normaltype);
//保存
typeService.save(normaltype);
//删除
typeService.delete(id);
4.2.4动物健康管理模块
动物健康管理模块,在动物健康管理页面可以查看动物名、饲养员、记录时间等内容,进行查询、编辑和删除等操作,如图4.10所示:
图4.10动物健康管理界面图
实现代码:
//分页查询
PageInfo<Health> page = healthService.selectBreederByPage(health,pageNumber,pageSize);
//更新
healthService.update(health);
//保存
healthService.save(health);
//删除
healthService.delete(health);
4.2.5饲养规范管理模块
饲养规范管理模块,在饲养规范管理页面可以查看标题、录入人、记录时间等内容,进行查询、编辑和删除等操作,如图4.11所示:
图4.11饲养规范管理界面图
//分页查询
@RequestMapping("/data")
public ModelAndView typeData(Standard standard, @RequestParam(required = true,defaultValue = "1") Integer pageNumber, Integer pageSize){
ModelAndView mav = new ModelAndView("standard/data");
if (pageSize == null) {
pageSize=Integer.parseInt( Constrant.DEFAULTPAGE_SIZE);
}
PageInfo<Standard> page = standardService.selectStandardByPage(standard,pageNumber,pageSize);
LhPage lhpage = new LhPage(page);
mav.addObject("page",page);
mav.addObject("pageStr",lhpage.getPageStr());
mav.addObject("data",page.getList());
mav.addObject("standard",standard);
return mav;
}
/**
* 保存
* @param standard
* @return
*/
@RequestMapping("/save")
public String saveOrUpdate(Standard standard, HttpSession session){
standard.setLrdate(DateUtil.getDateNow("yyyy-MM-dd hh:mm:ss"));
UserVO user = (UserVO) session.getAttribute(Constrant.CURRENT_USER);
standard.setLrpeople(user.getUsername());
if(standard.getId()!=null){
//更新
standardService.update(standard);
}else{
//保存
standardService.save(standard);
}
return "forward:data.action";
}
/**
* 删除
* @param id
* @return
*/
@RequestMapping("/delete")
public String delete(Integer id){
standardService.delete(id);
return "forward:data.action";
4.2.6 用户管理模块
用户管理模块是对后台管理员的用户信息进行统一管理,主要包括了姓名、登录名、性别、所属部门、所属角色、最后登录时间、状态等信息,涵盖的操作主要有新增、删除、修改查询。用户管理模块的界面如图4.12所示。
图4.12 用户管理界面
//用于显示用户列表
@RequestMapping("userData")
public ModelAndView toUserData(SUser user,@RequestParam(required=true,defaultValue="1") Integer pageNumber,@RequestParam(required=true,defaultValue="10") Integer pageSize){
//获取分页数据并保存在作用域中
PageInfo<SUser> page = userService.selectAllUsers(user,pageNumber,pageSize);
ModelAndView mav = new ModelAndView("user/data");
LhPage lhpage = new LhPage(page);
//分页对象
mav.addObject("pageInfo", page);
mav.addObject("pageStr",lhpage.getPageStr());
//当前页数据
mav.addObject("data", page.getList());
mav.addObject("user", user);
return mav;
}
//保存数据
@RequestMapping("save")
public String saveUser(SUser user){
userService.saveUser(user);
return "forward:userData.action";
}
//根据ID单个删除数据
@RequestMapping("delete")
public String deleteUser(SUser user){
userService.deleteUser(user);
return "redirect:/user/userData.action";
}
//批量删除数据
@RequestMapping("deletes")
public String deleteUsers(Integer[] ids){
userService.deleteUsers(ids);
return "redirect:/user/userData.action";
}
//异步验证用户名是否存在
@RequestMapping("/resource")
@ResponseBody
public List<Map> getResource(HttpServletRequest request){
List<Map> result = new ArrayList<Map>();
Map map = new HashMap();
map.put("title", "系统设置");
map.put("icon", "icon-computer");
map.put("href", "http://www.baidu.com");
map.put("spread", false);
List<Map> children = new ArrayList<Map>();
Map map_ = new HashMap();
map_.put("title", "用户管理");
map_.put("icon", "");
map_.put("href", request.getContextPath()+"/user/userData.action");
map_.put("spread", false);
children.add(map_);
Map map2_ = new HashMap();
map2_.put("title", "角色管理");
map2_.put("icon", "");
map2_.put("href", request.getContextPath()+"/role/data.action");
map2_.put("spread", false);
children.add(map2_);
map.put("children", children);
result.add(map);
return result;
}
@RequestMapping("/getResourceByRoleId")
@ResponseBody
public List<Menus> getResourceByRoleId(Integer roleId){
List<Menus> result = roleService.selectResourceByRoleId(roleId);
return result;
4.2.7 部门管理模块
部门管理模块是对后台管理员的部门信息进行统一管理,主要包括了部门名称、状态信息,涵盖的操作主要有新增、删除、修改查询。部门管理模块的界面如图4.13所示。
图4.13 部门管理界面
实现代码:
//分页查询
PageInfo<SDept> page = deptService.selectDeptByPage(dept,pageNumber,pageSize);
//保存或更新
deptService.saveOrUpdate(dept);
//删除
deptService.deleteById(id);
4.2.8角色管理模块
角色管理模块是对后台管理员的角色信息进行统一管理,主要包括了角色名称、状态信息,涵盖的操作主要有新增、删除、修改、查询、资源权限分配等操作。角色管理模块的界面如图4.14所示。
图4.14 角色管理界面
实现代码:
//分页查询
PageInfo<SRole> page = roleService.selectByPage(role, pageNumber,pageSize);
//查询角色资源信息
roleService.selectRoleResources(roleId);
//更新或删除
map = roleService.saveOrDeleteResource(roleId,resourceId,pid);
//保存
roleService.saveOrUpdateRole(role);
//删除
roleService.deleteRole(role);
第5章 系统测试
5.1测试目的
系统测试的目的主要包括了以下几方面:
1系统的功能流程可正常进行;
2系统在使用过程中避免错误的发生;
3发现系统运转过程中可能出现的加载慢、不稳定等问题,及时进行解决。
5.2 测试步骤
1系统模块测试,是把系统功能划分成的小模块,一个一个进行测试,找出各个小模块现有的问题,将其解决完善;
2系统整体测试,在把系统按小模块测试完成后,把所有小模块进行整合,梳理成具体操作流程。在已确定的具体操作流程中测试并发现问题,使各个模块有密切联系,这样做才可完成确定的操作流程;
3测试结果验收,在项目验收之前多次测试,在确保没问题情况下即可交付客户。
5.3部分功能模块测试
1登录功能
测试用例及结果如表5.1所示。
表5.1 登录功能测试表
测试模块 | 测试用例 | 预期结果 | 测试结果 |
登录 | { “18435122378”, “123456” } | 用户不存在 | 与实际结果一致 |
{ “18435122379”, “123456” } | 密码错误 | 与实际结果一致 | |
{ “18435122379”, “123456” } | 登录成功 | 与实际结果一致 | |
{ “18435122379 ”, “ ” } | 提示密码必填 | 与实际结果一致 | |
{ “ ”, “18435122379 ” } | 提示账号必填 | 与实际结果一致 | |
{ “ ”, “ ” } | 提示账号、密码必填 | 与实际结果一致 |
2首页banner图管理功能
测试用例及结果如表5.2所示。
表5.2 首页banner图管理功能测试表
测试模块 | 测试用例 | 预期结果 | 测试结果 |
图片新增 | { “1223.png”} | 图片新增成功 | 与实际结果一致 |
{ “ 1222.gif” } | 提示格式不正确 | 与实际结果一致 | |
{ “ ” } | 提示必填信息未填写 | 与实际结果一致 | |
关键字查询 | 输入{ “1223” },点击“查询” | 查到与1223相匹配的事件 | 与实际结果一致 |
图片信息修改 | 点击“修改”,修改{“姓名1.png”} | 修改成功 | 与实际结果一致 |
图片信息删除 | 点击“删除”,删除确认 | 删除成功 | 与实际结果一致 |
3动物信息管理功能
测试用例及结果如表5.3所示。
表5.3 动物信息管理功能测试表
测试模块 | 测试用例 | 预期结果 | 测试结果 |
动物信息新增 | { “熊猫”, “类型1”, “2023-02-12”, “熊猫生活在...”} | 动物信息新增成功 | 与实际结果一致 |
{ “”, “类型1”, “2023-02-12”, “熊猫生活在...”} | 提示必填信息未填写 | 与实际结果一致 | |
{ “”, “类型1”, “2023-02-12 122”, “熊猫生活在...”} | 新增失败 | 与实际结果一致 | |
关键字查询 | 输入{ “熊猫” },点击“查询” | 查到与熊猫相匹配的事件 | 与实际结果一致 |
动物信息修改 | 点击“修改”,修改{“姓名1”} | 修改成功 | 与实际结果一致 |
动物信息删除 | 点击“删除”,删除确认 | 删除成功 | 与实际结果一致 |
4用户管理功能
测试用例及结果如表5.4所示。
表5.4 用户管理功能测试表
测试模块 | 测试用例 | 预期结果 | 测试结果 |
用户新增 | 点击“新增”,输入{“姓名”,“用户名”,“密码”,“性别”,“部门”,“角色”,“状态”} | 新增成功 | 与实际结果一致 |
关键字查询 | 输入{ “用户1” },点击“查询” | 查到与用户1相匹配的事件 | 与实际结果一致 |
用户修改 | 点击“修改”,修改{“姓名1”} | 修改成功 | 与实际结果一致 |
用户删除 | 点击“删除”,删除确认 | 删除成功 | 与实际结果一致 |
5部门管理功能
测试用例及结果如表5.5所示。
表5.5 部门管理功能测试表
测试模块 | 测试用例 | 预期结果 | 测试结果 |
部门新增 | 点击“新增”,输入{“部门编号”,“部门名称”,“状态”} | 新增成功 | 与实际结果一致 |
关键字查询 | 输入{ “部门1” },点击“查询” | 查到与部门1相匹配的事件 | 与实际结果一致 |
部门修改 | 点击“修改”,修改{“部门1”} | 修改成功 | 与实际结果一致 |
部门删除 | 点击“删除”,删除确认 | 删除成功 | 与实际结果一致 |
6角色管理功能
测试用例及结果如表5.6所示。
表5.6 角色管理功能测试表
测试模块 | 测试用例 | 预期结果 | 测试结果 |
角色新增 | 点击“新增”,输入{“角色名称”} | 新增成功 | 与实际结果一致 |
关键字查询 | 输入{ “角色1” },点击“查询” | 查到与角色1相匹配的事件 | 与实际结果一致 |
角色修改 | 点击“修改”,修改{“角色1”} | 修改成功 | 与实际结果一致 |
角色删除 | 点击“删除”,删除确认 | 删除成功 | 与实际结果一致 |
7饲养员管理功能
测试用例及结果如表5.7所示。
表5.7 饲养员管理功能测试表
测试模块 | 测试用例 | 预期结果 | 测试结果 |
饲养员新增 | 点击“新增”,输入{“饲养员名”,“12.png”,“介绍”} | 新增成功 | 与实际结果一致 |
关键字查询 | 输入{ “饲养员1” },点击“查询” | 查到与饲养员1相匹配的事件 | 与实际结果一致 |
饲养员修改 | 点击“修改”,修改{“饲养员1”} | 修改成功 | 与实际结果一致 |
饲养员删除 | 点击“删除”,删除确认 | 删除成功 | 与实际结果一致 |
第6章 结论
本文对开发动物保护系统的目的、意义、设计、实现及测试结果进行了阐述。系统采用的后台开发架构是主流的SSM,前端框架是layui,数据库的设计使用建模工具PowerDesigner,实体类对象生成使用逆向工程,简单的单表操作SQL也已自动生成,提高了开发效率。
本系统完成大约花费了两个月左右的开发时长,在这两个月里面,自己的理论知识和实践进行了结合,提升了自己的开发能力。但是,系统开发工作从来未停止,将在后面把系统里需优化的进行优化,提高系统的操作流程和实际使用流程的契合度,让系统能投入使用。
参考文献
[1]马英瑞,刘真,李娟.基于JavaWeb的健身管理系统设计与实现[J].福建电脑,2018,34(09):39-40+44.
[2]李驰.JavaWeb网络学习资源推荐系统的研究与实现[D].四川师范大学,2022.
[3] 陈玲玲,赵全军,赵志国.基于JavaWeb的研究生教务管理系统的设计与实现[J].现代信息科技,2021,5(20):27-29.
[4] 郝文菊,严竞雄.基于JavaWeb的项目代码生成工具在教学中的改革与实现[J].电脑编程技巧与维护,2020(04):10-12.
[5] 陈秋玲.基于JavaWeb的图书购物网站的设计与实现[J].电脑知识与技
术,2019,15(16):36-38.
[6]本刊讯.国家重点保护水生野生动物信息管理系统启动试运行[J].中国水产,2021(08):21-22.
[7] 高晓霞,姜淑娟.信息化建设,为南澎保护区工作保驾护航[J].海洋与渔业,2016(07):37-39.
[8] 谭海军.四川珍稀动植物信息管理系统[J].涪陵师范学院学报,2002(05):104-106.
[9]郑李明.基于SSM中国幼儿体育教学内容的分析[J].四川体育科学,2023,42(01):139-142.
[10]闫银娟.基于SSM的房屋租赁系统的设计与实现[J].电脑知识与技术,2022,18(33):38-41.
[11] 陶爱兰. 基于SSM的数字化审计平台的设计与实现[D].南京邮电大学,2021.
[12]朱军.基于JavaWe的编程技术论坛的设计与实现[J]. 电子制作,2022,30(10):51-54.
[13]李昕宇. 基于JavaWeb的中小型医院门诊管理系统的设计与实现[J]. 软件,2022,43(05):131-133.
[14]范金海. 动物防疫信息化管理系统的设计与实现[D].云南师范大学,2020.
[15]张喜民,詹海生,刘强,袁战军,张金博. 基于NB-IoT的低功耗野生保护动物监测系统研制[J]. 应用科学学报,2023,41(02):262-271.
[16] A Reusable SQL Injection Detection Method for Java Web Applications[J]. KSII Transactions on Internet and Information Systems,2020,14(6).
[17] Zheng Hongying. A Study on the Design of English Speaking Examination System Based on SSM Framework[J]. Journal of Sensors,2022,2022.
[18] Automatic Extraction of Dependencies between Web Components and Database Resources in Java Web Applications[J]. Journal of information and communication convergence engineering,2019,17(2).
致 谢
大学生活就快走入尾声,校园生活就要划上句号,心中是无尽的难舍与眷恋。从校园里走出,对我的人生来说将是踏上一个新征程,要把所学的知识应用到实际工作中去。
不积硅步无以至千里,不积小流无以成江海。本次论文从选题到完成,每一步都是在导师的悉心指导下完成的,倾注了导师超多的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!在写论文的过程中,遇到了很多问题,在导师的耐心指导下,问题都得以解决。所以在此,再次对导师道一声谢谢您!
本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。
故事结局很美丽,过程曲折而已。愿我们以渺小启程,以伟大结束。最后向大家道一句辛苦。来日方长,不忘初心,我会在未来的工作和实践中始终如一的回报诸位对我的教导、帮助、理解和支持。