目 录
摘 要 I
Abstract II
引 言 1
1 主要技术和工具介绍 3
1.1 SSM框架简介 3
1.1.1 Spring 3
1.1.2 Mybatis 数据持久化技术 3
1.1.3 SpringMVC 3
1.2 MySQL数据简介 4
1.3 本章小结 4
2 系统分析 5
2.1 需求分析 5
2.1.1 功能分析 5
2.1.2 用例说明 6
2.2 可行性分析 9
2.2.1 技术可行性分析 9
2.2.2 经济可行性分析 9
2.3 本章小结 10
3 系统设计 11
3.1 系统结构设计 11
3.2 数据库设计 11
3.2.1 逻辑设计 11
3.2.2 表设计 12
3.3 本章小结 14
4 系统实现 15
4.1 登录和注销功能实现 15
4.2 具体功能实现 16
4.2.1 用户功能实现 16
4.2.2 管理员功能实现 17
4.3 本章小结 24
5 系统测试 25
5.1 测试目的 25
5.2 性能测试 25
5.2.1 压力测试 25
5.2 功能测试 26
5.2.1 登录测试 26
5.2.2 公告测试 27
5.2.3 信息测试 28
5.3 本章小结 30
结 论 31
致 谢 32
参考文献 33
摘 要
随着发展中国家经济的繁荣和社会飞速发展,环境污染问题也越来越严重,给企业上的生产和人们的日常生活都带了巨大的危害,环境监测的问题已经成为我国环境资源保护的重要组成部分。随着计算机的技术和移动互联网的技术快速的发展,因此设计和建立开发起一套具有优势的自动化,智能化,网络化的专业环境监测信息管理系统,已经发展成为了环境监测行业发展的一个重要必然趋势。
本系统主要是基于先进的JavaEE技术和平台设计实现的Web软件管理系统,本软件系统主要研究和应用于:Spring与SpringMVC技术、MySQL数据库技术、MyBatis数据持久化技术。本系统实现了普通用户和数据管理员对于环境监测中各项信息和数据的采集和处理,包括对数据的采集、数据的编辑和对数据的查询,普通用户和管理员可以同时查看数据库信息和管理个人信息,管理员可以对所有功能进行管理。本系统在设计和开发的过程中,利用了面向对象的设计和编程的方法,并实现了信息管理系统和平台的完整结构和功能。
本系统在开发和测试之后达到了可以预期的效果,可以为广大用户和企业提供方便、快捷的环境监测数据管理系统服务。提高了国内外环境管理的信息化水平与工作效率,对于推动各级政府和环保部门的环境管理与信息化体系建设有着重要的作用。
关键词:SSM框架; 监测数据; 管理系统
Abstract
With the economic prosperity and rapid social development of developing countries, the problem of environmental pollution is becoming more and more serious, which brings great harm to the production of enterprises and People’s Daily life. Environmental monitoring has become an important part of environmental resources protection in China. With the rapid development of computer technology and mobile Internet technology, the design, establishment and development of a set of advantageous automatic, intelligent, networked professional environmental monitoring information management system has become an important trend in the development of environmental monitoring industry.
This system is mainly a Web software management system based on advanced JavaEE technology and platform design and implementation. This software system is mainly researched and applied to: Spring and SpringMVC technology, MySQL database technology, MyBatis data persistence technology. This system has realized the ordinary users and data administrator for environmental monitoring in the information and data acquisition and processing, including data collection, data editing and the data query, ordinary users and administrators can also check the database information and personal information management, the administrator can manage all functions. This system in the design and development process, the use of object-oriented design and programming methods, and the realization of the information management system and platform complete structure and function.
This system has achieved the expected effect after the development and the test, may provide the convenient, the quick environmental monitoring data management system service for the general user and the enterprise. It improves the information level and work efficiency of environmental management at home and abroad and plays an important role in promoting the construction of environmental management and information system of governments and environmental protection departments at all levels.
Keywords: SSM framework; monitoring data; management system
引 言
随着近年来中国社会和经济的快速进步和技术的发展,人们的精神物质文化生活和环境也得到了极大地提高和改善,但是严重的环境污染问题也随之而来。近年来,生态环境被严重破坏和对环境资源严重污染的事件频繁地发生,尤其是雾霾和水污染,给我们现有的人类社会生活和环境都带来了一种严重威胁[1]。随着人类社会环境污染的日益严重,每个人都已清醒地意识到了环境污染所可能带来的严重后果。如何保护环境已经逐渐成为了全世界各国人民的一个重大难题。然而,传统的人类生活环境管理模式已经不能完全满足人们对环境监测的实际需要,迫切需要一个有效的实现环境监测管理的系统[2]。
本研究课题从国内外环境监测与管理的信息化系统建设的要求入手,针对国内外的环境监测与管理的信息化系统建设的现状及可能存在的问题,设计一个基于SSM的环境监测管理系统,在深入分析了国内外环境监测与管理信息支撑体系的基础上,展开对国内外环境监测与管理信息系统的设计与研究[3]。提升国内外环境管理的信息化水平与工作效率,对于推动各级政府和环保部门的环境管理与信息化体系建设有着重要的作用。
基于以上的观点,提供了很好的研究环境监测与管理保护信息系统的方法和基础,开发环境监测管理系统的人员可以查看周围环境的情况,做好了防护的措施,收集得到的数据可以进行存储、发布,方便以后的参考,对系统中的数据可以进行科学的收集分析、整理,提高效率的同时使环境监测、环境保护管理部门人员可以有效的减少自然灾害的发生[4]。
本文第1章为主要技术和工具介绍主要介绍了环境监测管理系统开发所需要使用Spring 与 SpringMVC 技术、MySQL数据库技术、MyBatis 数据持久化技术。第2章为系统分析,本章首先使用例图分析实现的功能,并详细描述几个核心功能点。又对项目进行了可行性的分析。第3章为系统设计,本章结合结构图与E-R图对数据库进行描述,介绍了表中数据以及是否存在外键。第4章为系统实现,本章为系统页面的实现以及对核心代码的描述,并有截图演示实现的功能。第5章为系统测试,本章描述了系统的测试功能,在实际的开发过程中,无论项目的大小都需要进行统一测试。在进行项目测试的时候,要站在不同的角度,不同的方位,不同的流程进行项目测试。首先介绍了测试的目的,介绍了压力测试,然后对登录功能,公告信息功能,信息功能,进行了测试,并对测试结果进行了分析。通过对系统的测试,可以发现系统满足了使用的要求。
1 主要技术和工具介绍
1.1 SSM框架简介
1.1.1 Spring
Spring 是一个企业级框架,它本身是完全开源的[5]。它的开发和出现主要的目的是为了彻底解决原来的企业级应用开发所可能出现的复杂开发情况[6]。所有的基于 Java的软件都是可以通过使用很简单的Spring软件来使企业级程序开发变得更加的简单,而且这样可以很好的使程序和模块之间不再有任何耦合,对于企业级程序的系统测试和功能的实现以及拓展也很大的有帮助[7]。
1.1.2 Mybatis 数据持久化技术
传统的数据库驱动器是使用一个被称为JDBC的数据库驱动器连接方式,首先我们可能需要数据库用户手动加载一个Java数据库声明连接结果集的驱动器;然后我们可能需要用户自动建立与数据库的驱动器声明连接结果集的对象或预编译与数据库的声明连接结果集的对象[8]。然后就是需要帮助用户选择一个可以通过最新的数据管理器声明连接结果集的对象管理器执行相应的sql语句;然后在执行过程完成后用户有可能需要将数据渲染和关闭的处理结果依次的返回对象并发送给数据声明,相应的通过数据管理器声明的结果集对象管理器以及连接对象;最后还是有可能用户需要将通过数据管理器声明的结果集通过数据管理器的对象、声明的结果集管理器对象以及通过数据声明连接结果集对象依次返回并进行渲染和关闭[9]。如果数据库中使用了最新的Mybatis,开发者将不会觉得需要开发者花费太多的时间和精力去过多的学习和关注这些应用的操作,只是开发者需要更加关心最新的sql语句对于应用数据的如何渲染和处理[10]。
1.1.3 SpringMVC
SpringMVC 的工作原理,首先我们是通过用户处理器给具体的中央处理控制器发送中央处理请求[11]。然后产生一个 HandlerMapping 处理器会将一个 HandlerExecutionChain 这个对象的消息返回发送给具体的中央处理控制器[12]。在接收到一个 HandlerExecutionChain 这个对象后,中央处理控制器就开始会将相应的消息自动发送给具体的处理器或者适配器。中央处理器的适配器开始会根据相应的信息自动调用具体的后端中央处理控制器。后端中央处理控制器会在执行完相应的操作后会自动返回一个 ModelAndView 这个对象发送给中央处理器的适配器,然后返回一个消息给具体的中央控制器[13]。
1.2 MySQL数据简介
MySQL 在 Web 应用的开发以及相关的数据库方面一直是很受用户欢迎的,在目前最流行的关系型应用数据库中 MySQL 也有一席之地[14]。MySQL 存储引擎是轻量级的关系型数据库,它与目前 Oracle 等大型的数据库引擎相比仍然还是有一些不足的地方,但是它也可以拥有自己的一些优点,因此并不直接影响它在应用中的软件开发以及应用中的表现和用户量[15]。
MyISAM 可以拥有比较高的数据查询效率和对数据的处理速度,对于插入的数据也可以拥有很好的数据处理速度[16]。MyISAM 两种存储的引擎也可能会有自己的一些缺点,比如说它不能够支持查询事务的功能。
1.3 本章小结
本章主要描述了本系统所用的框架和核心技术,包括SSM框架里的 Spring 、 SpringMVC 和 MyBatis ,框架进行了简单的介绍,MySQL数据这些数据库可以分为两大类:一类是关系型数据库,一类是非关系型数据库,他们的区别就是在于进行数据的存储操作上。
2 系统分析
2.1 需求分析
2.1.1 功能分析
环境监测管理系统的角色管理分为用户和系统管理员,用户有浏览系统公告、管理个人信息、信息列表查询等基本功能,管理员有数据管理、日志管理、管理员列表、公告管理、参数管理、信息管理等功能。系统用例图如图2.1所示:
图2.1 系统用例图
环境监测管理系统用户可以进行登录、注销、浏览系统公告、查看个人信息等功能,注销、浏览系统公告、查看个人信息功能需要先登录然后在系统中使用。系统用户用例图如图2.2所示:
图2.2 用户用例图
环境监测管理系统的管理员可以对参数管理、信息管理、公告管理、日志管理、数据管理、角色管理信息进行添加、删除、修改、查询功能还可以登录、注销,参数管理、信息管理、公告管理、日志管理、数据管理、角色管理信息进行添加、删除、修改、查询功能还有注销需要先登录后再使用。管理员用例图如图2.3所示:
图2.3 管理员用例图
2.1.2 用例说明
用户登录:系统用户可以通过访问登录系统功能并显示登录页面。用户需要输入正确的登录名、密码和验证码,然后再次单击确认提交。如果您输入的登录名、密码和验证码不正确,将导致系统显示的登录名、密码和验证码输入错误,用户确认后可以再次单击提交登录。如果所有用户登录名和信息的密码正确并且保证用户成功的登录,系统将自动显示主页面。
用户注销:用户登录系统之后可以选择安全退出功能注销用户自己的登录信息,系统会自动清除在本系统上的所有用户信息,包括用户名密码等,下次登录将不会有该用户的任何信息,注销后将跳转到登录界面。
用户浏览公告:登录系统后,用户可以在系统中选择公告列表,进入公告界面。用户登录后可以在此公告页面方便地查看所有发布的信息,还可以查看某位想要发布人发布的公告。
用户查询信息:登录系统后,用户可以选择想要查询的页面,并根据特定信息进行信息的查询,点击搜索按钮,会有数据显示出来,如果没有数据显示空页面。
用户修改个人消息:登录系统后,用户可以选择角色列表进入用户列表界面,在此界面,用户可以修改个人的消息,比如账号、密码、昵称、邮箱等信息,点击提交按钮后,会提示是否修改成功。
管理员登录:系统管理员可以通过访问登录系统功能并显示登录页面。管理员需要输入正确的登录名、密码和验证码,然后再次单击确认提交。如果您输入的登录名、密码和验证码不正确,将导致系统显示的登录名、密码和验证码输入错误,管理员确认后可以再次单击提交登录。如果所有管理员登录名和信息的密码正确并且保证管理员成功的登录,系统将自动显示主页面。
管理员注销:管理员登录系统之后可以选择安全退出功能注销用户自己的登录信息,系统会自动清除在本系统上的所有用户信息,包括用户名密码等,下次登录将不会有该用户的任何信息,注销后将跳转到登录界面。
管理员浏览公告:登录系统后,管理员可以选择公告列表,进入公告界面。根据特定信息进行信息的查询,点击搜索按钮,则会有数据显示出来;如果没有数据显示空页面。管理员可以在此页面查看所有发布的公告,还可以只看某位发布人发布的公告。
管理员发布公告:登录系统后,管理员可以选择公告列表,进入公告界面,在此界面,管理员可以发布公告,此公告通过系统审核即可上传到公告页面如,其他用户可以通过浏览公告查看已发公告。
管理员修改公告:登录系统后,管理员可以选择公告列表,进入公告界面,在此界面,管理员可以修改任意公告,选择一条信息,点击修改按钮管理员可以输入要修改的消息,输入完成后,点击提交按钮,会自动提示是否将消息修改成功。
管理员删除公告:登录系统后,管理员可以选择公告列表,进入公告界面,在此界面,管理员可以删除任意公告,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,点OK按钮后,会自动提示是否将消息删除成功。
管理员添加消息:登录系统后,管理员可以选择进入信息界面,点击添加按钮管理员可以输入要添加的信息,输入完成后,点击添加按钮,会自动提示是否将消息添加成功。
管理员修改消息:登录系统后,管理员可以选择进入信息界面,选择一条信息,点击修改按钮管理员可以输入要修改的消息,输入完成后,点击提交按钮,会自动提示是否将消息修改成功。
管理员删除消息:登录系统后,管理员可以选择进入信息界面,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,如果该信息下存在别的信息则无法删除,须先删除该信息下的信息,点OK按钮后,会自动提示是否将消息删除成功。
管理员查看信息:登录系统后,管理员可以选择进入信息界面,管理员输入特定信息进行查询点击搜索按钮,则会有数据显示出来,如果没有数据显示空页面。
管理员添加参数:登录系统后,管理员可以选择进入参数界面,点击添加按钮管理员可以输入要添加的参数信息,输入完成后,点击添加按钮,会自动提示是否将参数添加成功。
管理员修改参数:登录系统后,管理员可以选择进入参数界面,选择一条信息,点击修改按钮管理员可以输入要修改的消息,输入完成后,点击提交按钮,会自动提示是否将参数修改成功。
管理员删除参数:登录系统后,管理员可以选择进入参数界面,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,点OK按钮后,会自动提示是否将参数删除成功。
管理员查看参数:登录系统后,管理员可以选择进入参数界面,管理员输入特定信息进行查询点击搜索按钮,则会有数据显示出来,如果没有数据显示空页面。
管理员添加数据:登录系统后,管理员可以选择进入数据界面,点击添加按钮管理员可以输入要添加的数据信息,输入完成后,点击添加按钮,会自动提示是否将数据添加成功。
管理员修改数据:登录系统后,管理员可以选择进入数据界面,选择一条信息,点击修改按钮管理员可以输入要修改的消息,输入完成后,点击提交按钮,会自动提示是否将数据修改成功。
管理员删除数据:登录系统后,管理员可以选择进入数据界面,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,点OK按钮后,会自动提示是否将数据删除成功。
管理员查看数据:登录系统后,管理员可以选择进入数据界面,管理员输入特定信息进行查询点击搜索按钮,则会有数据显示出来,如果没有数据显示空页面。
管理员删除日志:登录系统后,管理员可以在列表中选择日志列表,进入日志界面,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,点OK按钮后,会自动提示是否删除成功。
管理员查看日志:登录系统后,管理员可以在列表中选择日志列表,进入日志界面,只有管理员才有查看日志的功能,非管理员人员不可以随便查看日志功能。
2.2 可行性分析
2.2.1 技术可行性分析
技术可行性分析是针对项目中所可能遇到的技术进行一个综合性的分析,如果在项目里遇到技术上的难点,要及时根据项目的逻辑做出相应的调整,以保证项目能够在正常的周期内进行开发。在本次毕业设计中,主要分为普通用户和管理员用户[17]。首先是在项目的开发初期,项目的系统图设计和用例图设计时使用Visio和rose进行开发,这种工具比较简单的,在项目进行开发的时候,使用了eclipse开发工具进行项目的开发[18]。
2.2.2 经济可行性分析
经济可行性分析是针对项目开发过程中的成本进行分析,无论是调研工作、技术开发工作还是最终测试工作,都需要成本费用,为了保证项目能够顺利开发,则需要进行综合性的分析,来判断该项目是否能够在有限的资金内进行整体的开发,从而避免因为开发资金不足而造成系统半途而废[19]。在本次毕业设计中,则通过经济可行性分析得出项目的毕业设计工作,在成本方面没有资金的消耗,则认为该项目在经济上是具有可行性的[20]。
2.3 本章小结
本章描述了环境监测管理系统的需求分析和用例。在系统中,用户和管理员在访问系统之前都需要登录。用户只能修改自己的信息和查询数据。管理员则可以对所有这些数据可以进行访问。
3 系统设计
3.1 系统结构设计
功能结构图如图3.1所示:
图3.1 功能结构图
3.2 数据库设计
3.2.1 逻辑设计
系统E-R图如图3.2所示:
图3.2 系统E-R图
3.2.2 表设计
公告列表affiche表中有3个字段,如表3.1所示:
表3.1 公告列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
affichename VARCHAR(45) NOT NULL 发布人
affichemessage VARCHAR(200) NOT NULL 发布内容
大气列表atmosphere表中有5个字段,如表3.2所示:
表3.2 大气列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
atmosphereaddress VARCHAR(45) NOT NULL 地址
atmospherenumber VARCHAR(45) NOT NULL 污染指数
atmospherenumber VARCHAR(45) NOT NULL 负责人
cityid INT(11) NOT NULL FOREIGN KEY 市区序号
烟气列表fume表中有7个字段,如表3.3所示:
表3.3 烟气列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
fumename VARCHAR(45) NOT NULL 排放口名称
hydroxideconcentration VARCHAR(45) NOT NULL 氢氧化物浓度
hydroxidedischargerate VARCHAR(45) NOT NULL 氢氧化物排量
sulfurdioxideconcentration VARCHAR(45) NOT NULL 二氧化硫排量
velocity VARCHAR(45) NOT NULL 流速
companyid INT(11) NOT NULL FOREIGN KEY 市区序号
企业列表company表中有5个字段,如表3.4所示:
表3.4 企业列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
companyname VARCHAR(45) NOT NULL 名称
companyaddress VARCHAR(45) NOT NULL 地址
companymessage VARCHAR(45) NOT NULL 信息
cityid INT(11) NOT NULL FOREIGN KEY 市区序号
市区列表city表中有5个字段,如表3.5所示:
表3.5 市区列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
cityname VARCHAR(45) NOT NULL 名称
address VARCHAR(45) NOT NULL 地址
person VARCHAR(45) NOT NULL 负责人
area VARCHAR(45) NOT NULL 面积
用户列表login中有5个字段,如表3.6所示:
表3.6 用户列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
username VARCHAR(45) NOT NULL 名称
password VARCHAR(45) NOT NULL 密码
email VARCHAR(200) NOT NULL 邮箱
nickname VARCHAR(45) NOT NULL 昵称
噪音列表noise表中有5个字段,如表3.7所示:
表3.7 噪音列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
noiseaddress VARCHAR(45) NOT NULL 地址
noisenumber VARCHAR(45) NOT NULL 污染指数
noiseperson VARCHAR(45) NOT NULL 负责人
cityid INT(11) NOT NULL FOREIGN KEY 市区序号
废弃品列表trash表中有5个字段,如表3.8所示:
表3.8 废弃品列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
trashaddress VARCHAR(45) NOT NULL 地址
trashnumber VARCHAR(45) NOT NULL 污染指数
trashperson VARCHAR(45) NOT NULL 负责人
cityid INT(11) NOT NULL FOREIGN KEY 市区序号
管理员列表user表中有3个字段,如表3.9所示:
表3.9 管理员列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
username VARCHAR(45) NOT NULL 名称
password VARCHAR(45) NOT NULL 密码
烟尘列表smoke表中有7个字段,如表3.10所示:
表3.10 烟尘列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
smokename VARCHAR(45) NOT NULL 排放口名称
smokeconcentration VARCHAR(45) NOT NULL 烟尘浓度
oxygenconcentration VARCHAR(45) NOT NULL 氧气浓度
smokedisplacement VARCHAR(45) NOT NULL 烟尘排量
temperature VARCHAR(45) NOT NULL 温度
companyid INT(11) NOT NULL FOREIGN KEY 市区序号
污水列表water表中有5个字段,如表3.11所示:
表3.11 污水列表
列名 数据类型(精度范围) 空/非空 约束条件 其它说明
id INT(11) NOT NULL PRIMARY KEY 序号
wateraddress VARCHAR(45) NOT NULL 地址
waternumber VARCHAR(45) NOT NULL 污染指数
waterperson VARCHAR(45) NOT NULL 负责人
cityid INT(11) NOT NULL FOREIGN KEY 市区序号
3.3 本章小结
本章节主要描述了系统的结构设计以及数据表的设计,结构设计主要介绍了本系统要实现的功能,数据表设计描述了每张数据表里面的数据以及外键的引用,还介绍了系统的体系结构。
4 系统实现
4.1 登录和注销功能实现
系统用户可以通过访问登录系统功能并显示登录页面。用户需要输入正确的登录名、密码和验证码,然后再次单击确认提交。如果您输入的登录名、密码和验证码不正确,将导致系统显示的登录名、密码和验证码输入错误,用户确认后可以再次单击提交登录。如果所有用户登录名和信息的密码正确并且保证用户成功的登录,系统将自动显示主页面。登录页如图4.1所示:
图4.1 登录页面
$(“#submitBtn”).click(function(){
var data = $(“#form”).serialize();
$.ajax({
type: “post”,
url: “login”,
data: data,
dataType: “json”, //返回数据类型
success: function(data){
if(“success” == data.type){
window.parent.location.href = “index”;
} else{
$.messager.alert(“消息提醒”, data.msg, “warning”);
$(“#vcodeImg”).click();//切换验证码
$(“input[name=‘vcode’]”).val(“”);//清空验证码输入框
}
}
});
});
该界面为主页管理员可以在该界面上进行、注销、进入角色管理、数据管理、日志管理、参数管理等操作,普通用户可以进行、注销、修改个人消息以及浏览公告、查询消息、管理个人消息等等。当成功登录之后,出现如图4.2所示界面:
图4.2 主页面
登录系统之后可以选择安全退出功能注销用户自己的登录信息,系统会自动清除在本系统上的所有用户信息,包括用户名密码等,下次登录将不会有该用户的任何信息,注销后将跳转到登录界面。点击安全退出后即可退出系统,如图4.3所示:
图4.3 安全退出
4.2 具体功能实现
4.2.1 用户功能实现
修改个人信息:登录系统后,用户可以选择角色列表进入用户列表界面,在此界面,用户可以修改个人的消息,比如账号、密码、昵称、邮箱等信息,点击提交按钮后,会提示是否修改成功。如图4.4所示:
图4.4 修改个人信息
用户查询信息:登录系统后,用户可以选择想要查询的页面,并根据特定信息进行信息的查询,点击搜索按钮。如果有数据显示出来,如果没有数据显示空页面。如图4.5所示:
图4.5 用户查询信息
4.2.2 管理员功能实现
管理员发布公告:登录系统后,管理员可以选择公告列表,进入公告界面,在此界面,管理员可以发布公告,此公告通过系统审核即可上传到公告页面如,其他用户可以通过浏览公告查看已发公告。如图4.6所示:
图4.6 发布公告
@RequestMapping(value=“/add”,method=RequestMethod.POST)
@ResponseBody
public Map<String, String> add(Affiche affiche){
Map<String, String> ret = new HashMap<String, String>();
if(affiche.getAffichename() == null){
ret.put(“type”, “error”);
ret.put(“msg”, “发布人不能为空!”);
return ret;
}
if(affiche.getAffichemessage() == null){
ret.put(“type”, “error”);
ret.put(“msg”, “发布内容不能为空!”);
return ret;
}
if(afficheService.add(affiche) <= 0){
ret.put(“type”, “error”);
ret.put(“msg”, “添加失败!”);
affService.add(“发布人”+affiche.getAffichename()+“添加信息失败!”);
return ret;
}
ret.put(“type”, “success”);
ret.put(“msg”, “添加成功!”);
affService.add(“发布人”+affiche.getAffichename()+“添加信息成功!”);
return ret;
}
管理员修改公告:登录系统后,管理员可以选择公告列表,进入公告界面,在此界面,管理员可以修改任意公告,选择一条信息,点击修改按钮管理员可以输入要修改的消息,输入完成后,点击提交按钮,会自动提示是否将消息修改成功。如图4.7所示:
图4.7 修改公告
@RequestMapping(value=“/edit”,method=RequestMethod.POST)
@ResponseBody
public Map<String, String> edit(Affiche affiche){
Map<String, String> ret = new HashMap<String, String>();
if(affiche.getAffichename() == null){
ret.put(“type”, “error”);
ret.put(“msg”, “发布人不能为空!”);
return ret;
}
if(affiche.getAffichemessage() == null){
ret.put(“type”, “error”);
ret.put(“msg”, “发布内容不能为空!”);
return ret;
}
if(afficheService.edit(affiche) <= 0){
ret.put(“type”, “error”);
ret.put(“msg”, “修改失败!”);
affService.add(“发布人”+affiche.getAffichename()+“修改信息失败!”);
return ret;
}
ret.put(“type”, “success”);
ret.put(“msg”, “修改成功!”);
affService.add(“发布人”+affiche.getAffichename()+“修改信息成功!”);
return ret;
}
管理员删除公告:登录系统后,管理员可以选择公告列表,进入公告界面,在此界面,管理员可以删除任意公告,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,点OK按钮后,会自动提示是否将消息删除成功。如图4.8所示:
图4.8 删除公告
@RequestMapping(value=“/delete”,method=RequestMethod.POST)
@ResponseBody
public Map<String, String> delete(
@RequestParam(value=“ids[]”,required=true) Long[] ids
){
Map<String, String> ret = new HashMap<String, String>();
if(ids == null){
ret.put(“type”, “error”);
ret.put(“msg”, “请选择要删除的数据!”);
return ret;
}
String idsString = “”;
for(Long id:ids){
idsString += id + “,”;
}
idsString = idsString.substring(0,idsString.length()-1);
if(afficheService.delete(idsString) <= 0){
ret.put(“type”, “error”);
ret.put(“msg”, “删除失败!”);
affService.add(“删除公告信息失败!”);
return ret;
}
ret.put(“type”, “success”);
ret.put(“msg”, “删除成功!”);
affService.add(“删除公告信息成功!”);
return ret;
}
管理员添加消息:登录系统后,管理员可以选择进入信息界面,点击添加按钮管理员可以输入要添加的信息,输入完成后,点击添加按钮,会自动提示是否将消息添加成功。如图4.9所示:
图4.9 发布消息
管理员修改消息:登录系统后,管理员可以选择进入信息界面,选择一条信息,点击修改按钮管理员可以输入要修改的消息,输入完成后,点击提交按钮,会自动提示是否将消息修改成功。如图4.10所示:
图4.10 修改消息
管理员删除消息:登录系统后,管理员可以选择进入信息界面,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,如果该信息下存在别的信息则无法删除,须先删除该信息下的信息,点OK按钮后,会自动提示是否将消息删除成功。如图4.11所示:
图4.11 删除消息
管理员查询消息:登录系统后,管理员可以选择进入信息界面,管理员输入特定信息进行查询点击搜索按钮,则会有数据显示出来,如果没有数据显示空页面。如图4.12所示:
图4.12 查询消息
//搜索按钮
$(“#search-btn”).click(function(){
KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲dataList').data…(“#search-username”).textbox(‘getValue’)
});
});
管理员添加参数:登录系统后,管理员可以选择进入参数界面,点击添加按钮管理员可以输入要添加的参数信息,输入完成后,点击添加按钮,会自动提示是否将参数添加成功。如图4.13所示:
图4.13 添加参数
管理员修改参数:登录系统后,管理员可以选择进入参数界面,选择一条信息,点击修改按钮管理员可以输入要修改的消息,输入完成后,点击提交按钮,会自动提示是否将参数修改成功。如图4.14所示:
图4.14 修改参数
管理员删除参数:管理员删除参数:登录系统后,管理员可以选择进入参数界面,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,点OK按钮后,会自动提示是否将参数删除成功。如图4.15所示:
图4.15 删除参数
管理员查看参数:管理员查看参数:登录系统后,管理员可以选择进入参数界面,管理员输入特定信息进行查询点击搜索按钮,则会有数据显示出来,如果没有数据显示空页面。如图4.16所示:
图4.16 查看参数
管理员删除日志:管理员删除日志:登录系统后,管理员可以在列表中选择日志列表,进入日志界面,选择一条或多条信息,点击删除按钮管理员可以删除此条或多条信息,点OK按钮后,会自动提示是否删除成功。如图4.17所示:
图4.17 删除日志
管理员查看日志:管理员查看日志:登录系统后,管理员可以在列表中选择日志列表,进入日志界面,只有管理员才有查看日志的功能,非管理员人员不可以随便查看日志功能。如图4.18所示:
图4.18 查看日志
4.3 本章小结
本章节主要是对项目的页面进行了描述,主要是通过项目截图来显示项目效果,分别为用户功能实现和管理员功能实现,以及共有的登录和注销实现,并在下面附上核心代码,将项目准确的体现出来。
5 系统测试
5.1 测试目的
在环境监测管理系统正式投入使用前,测试的环节非常重要,整体环境监测系统的测试环节是系统可靠性和开发过程完整性的有效保障[21]。对目前正在研究的环境监测管理系统是否能进行高质量的系统性能测试,也是整个环境监控系统的开发进度和服务质量的一个重要保障。系统测试还是整个环境监测管理系统开发是否使用后能够真正投入使用的重要关键[22]。
5.2 性能测试
5.2.1 压力测试
测试主要是在环境监测管理系统软硬件资源不足的特殊情况下进行的,从而进一步了解环境监测管理系统在这些情况下所需要表现的具体压力和性能[23]。测试在环境监测管理软硬件条件不足的特别情况下进行的,深入了解环境监测所表现出的具体压力和性能[24]。
系统压力测试,测试1000个线程,图形结果如图5.1所示:
图5.1 压力测试图
系统压力测试,测试1000个线程,汇总结果如图5.2所示:
图5.2 压力测试图
从测试图中可以看到样本为1000,平均值为1008,最小值为1001,最大值为1141,吞吐量为每秒365.6,测试结果稳定。测试的结果说明了项目完全能适应以后项目的大规模使用。
5.2 功能测试
软件测试系统就是当成小黑盒子,并不能正常打开,所以不能知道内部情况,只能通过软件的接口和测试用例来测试。目的是来检验一个软件的功能是否满足对用户需要数据的分析,功能结构是不是正常和完整,操作上的简单与否[25]。
5.2.1 登录测试
登录模块需要测试的功能有:输入登录名和密码,点击“登录”按钮是否可以进入系统首页。登录测试用例如下表5.1所示:
表5.1 登录测试表
编号 测试数据 预期结果 实际结果
1 不输入用户名和密码,直接点击登陆
界面不跳转,弹出对话框,用户名不能为空
登录失败
2 输入未注册过的用户名 界面不跳转,弹出对话框,提示不存在该用户
登录失败
3 输入正确用户名,错误的密码 界面不跳转,弹出对话框,提示密码错误
登录失败
4 输入正确用户名,不输入密码 界面不跳转,弹出对话框,密码不能为空 登录失败
5 输入正确用户名和密码 界面实现跳转,登录功能正常进行 登录成功
不输入用户名和密码,直接点击登录如图5.3所示:
图5.3 登录测试图1
输入未注册过的用户名如图5.4所示:
图5.4 登录测试图2
输入正确用户名,错误的密码如图5.5所示:
图5.5 登录测试图3
输入正确用户名,不输入密码如图5.6所示:
图5.6 登录测试图4
输入正确用户名和密码如图5.7所示:
图5.7 登录测试图5
5.2.2 公告测试
公告测试需要测试的是查看是否显示信息、输入正确的所示内容、输入错误的搜索内容。公告测试用例如下表5.2所示:
表5.2 公告测试表
编号 测试数据 预期结果 实际结果
1 查看是否显示信息 显示数据 显示数据
2 输入正确的所示内容 搜索成功 搜索成功
3 输入错误的搜索内容 搜索失败,不显示内容 搜索失败,不显示内容
查看是否显示信息如图5.8所示:
图5.8 公告测试图1
输入正确的所示内容如图5.9所示:
图5.9 公告测试图2
输入错误的搜索内容如图5.10所示:
图5.10 公告测试图3
5.2.3 信息测试
信息测试需要测试的是添加信息,输入信息但有未填写的字段、添加信息,输入所有正确信息、查看是否显示信息、输入正确的所示内容、输入错误的搜索内容。信息测试用例如下表5.3所示:
表5.3 信息测试表
编号 测试数据 预期结果 实际结果
1 添加信息,输入信息但有未填写的字段 添加失败 添加失败
2 添加信息,输入所有正确信息 添加成功 添加成功
3 查看是否显示信息 显示数据 显示数据
4 输入正确的所示内容 搜索成功 搜索成功
5 输入错误的搜索内容 搜索失败,不显示内容 搜索失败,不显示内容
添加信息,输入所有正确的信息如图5.11所示:
图5.11 信息测试图1
添加信息,输入信息但有未填写的字段如图5.12所示:
图5.12 信息测试图2
查看是否显示信息如图5.13所示:
图5.13 信息测试图3
输入正确的所示内容如图5.14所示:
图5.14 信息测试图4
输入错误的搜索内容如图5.15所示:
图5.15 信息测试图5
5.3 本章小结
本章描述了系统的测试功能,在实际的开发过程中,无论项目的大小都需要进行统一测试。在进行项目测试的时候,要站在不同的角度,不同的方位,不同的流程进行项目测试。首先介绍了测试的目的,介绍了压力测试,然后对登录功能,公告信息功能,信息功能,进行了测试,并对测试结果进行了分析。通过对系统的测试,可以发现系统满足了使用的要求。
结 论
本次毕业设计再次就已经圆满完成了,虽然在开发的过程中有一些坎坷,并且有一些技术难点无法实现。在经过一系列的调整,针对项目的整体逻辑和功能进行了部分的调整。本文首先是介绍了目前全世界和我国的环境监测管理的发展现状,接着详细讲述了我国环境监测管理系统设计和开发的势在必行。根据我国现有的社会经济,企业的发展等实际情况制定了我国的环境监测管理与系统开发需要及时达到的目标和要求。对整个系统的功能和结构都进行了设计和分解,最下层的是将数据上传,分为三个阶层,将所有需要上传的系统数据和结构进行了统计和分析,并进行了发布,是本文的系统设计工作重点,再将上传的数据通过Web的方式进行了发布,供所有需要的系统用户及时进行查询和数据管理。
本系统的主要管理功能包括对数据的分析编辑,查询等数据管理功能,对信息的分析编辑,查询等管理功能。可以满足现在环境情况所需的要求,方便各级政府和环保部门对信息的管理。提高了国内外环境管理的信息化水平与工作效率,对于推动各级政府和环保部门的环境管理与信息化体系建设有着重要的作用。
本系统利用了现有的基础知识对系统的数据进行了分析和编写,将对数据的查询,数据的统计和分析等数据管理功能全部加入应用到了数据管理系统的平台当中,完成了系统管理功能的初步开发,为后续更完善的系统开发,做了充分的准备,系统的操作简单,使用方便,安全可靠,扩展性好,可维护性高,并且提供了不断地更新需求。
致 谢
四年的大学学习生活即将结束,在这里,我度过了丰富、充实的四年的求学生涯。如今想起来,往事历历在目。离校在即,心中充满了对母校的感激与留恋。感谢母校为我们提供了良好的学习环境,让我在这里专心的学习,快乐的生活。感谢一直支持我、鼓励我不断进取父母。感谢我的两位指导老师,崔满老师和刘荫忠老师对我的学习很大的帮助,在我遇到困难的时候,两位老师都会尽心的帮助我。而所有教过我的老师,您一丝不苟的作风,一直是我工作和学习的榜样。他们循循善诱的教导和不拘一格的思维方式给了我很大的启发。我要感谢我的同学和朋友们在过去的四年中一直陪伴着我,他们给了我很多有益的建议和意见。在他们的支持、鼓励和帮助下,我才能充实的度过了四年的学习生活。
参考文献
[1] 郑阿奇.MySQL实用教程[M].电子工业出版社:北京,2009: 20-23
[2] 王英英.MySQL 8从入门到精通[M].清华大学出版社:北京,2020:10-15
[3] 李刚.疯狂Java讲义(第5版)[M].电子工业出版社:北京,2019:25-28
[4] 黄文海.Java多线程编程实战指南:设计模式篇(第2版)[M].电子工业出版社:北京,2020:18-20
[5] 罗文劼,史青宣,苗秀芬.数据结构与算法(第四版)[M].机械工业出版社:北京,2020:32-35
[6] Kartika Firdausy, Samadri, Anton Yudhana. Web based Library Information System Using PHP and MYSQL[J]. TELKOMNIKA, 2008,06(2):56-60
[7] 胡圣尧.远程环境监测与信息管理系统的设计和实现[D].哈尔滨:哈尔滨工业大学,2004,3
[8] Craig A.Berry. J2EE Design Patern Applied[J]. USA Wrox Press, 2003,1:39-46
[9] 马玉宽,吴建华,万洋洋, 等. 鄱阳湖水环境信息管理系统的设计[J]. 南昌大学学报(工科版), 2014(4): 317-321
[10] Mayuri Joshi,Urmila Shrawankar. Effective Cache Management and Pollution Reduction for Online Privacy[J]. Procedia Computer Science,2016,78:123-128
[11] 刘换菊, 史术光.鄱阳湖生态经济区环境保护与资源开发利用现状分析[J]. 科技广场, 2013(2): 167-170
[12] 李本纲,冷疏影.二十一世纪的环境科学——应对复杂环境系统的挑战[J]. 环境科学学 报,2011,(06):1121-1132
[13] YongQiang Zhang,WenMing Li. Research and Design of the High-Performance Cluster Architecture Based on the MySQL and NoSQL[J]. Advanced Materials Research,2012,1677(460):231-235
[14] 翟剑锟. Spring框架技术分析及应用研究[D].北京:中国科学院大学,2013
[15] 龚凡.基于Spring Security的Web系统安全模块的设计与实现[D].武汉:华中科技大学,2011
[16] 邹红霆.基于SSM框架的Web系统研究与应用[J].湖南理工学院学报(自科版),2017,30(1):39-43
[17] 周志勇.基于SSM框架的在线共享笔记应用系统的设计与实现[J].电脑知识与技术,2016,12(34):129-130
[18] 魏书寒.基于SSM框架的图书管理系统的设计与实现[J].工业控制计算机,2017,30(7):133-134
[19] 周嘉雯,胡玉欣,周文华,等.基于SSM框架的活动审批Web系统的设计与实现[J].微型电脑应用,2017,33(6):50-52
[20] Tie Bin Liu. Design and Implement an Application Development Platform Based on Open Source Technology[J]. Advanced Materials Research,2014,3326(989):352-358
[21] 唐汉明.深入浅出 MySQL 数据库开发:优化与管理维护(第2 版)[M]. 北京:人民邮电出版社, 2014:25-28
[22] 朱红. 基于 MySQL 集群实现的高性能数据库架构设计[D].上海交通大学,2014
[23] 杨开振.深入浅出MyBatis 技术原理与实战[M]. 北京:电子工业出版社, 2016:22-25
[24] 李萍.浅谈TOMCAT之性能优化[J].科技情报开发与经济,2011,(12):114-116
[25] 荣艳冬.关于 Mybatis 持久层框架的应用研究[J].信息安全与技术,2015,(12):86-88