基于springboot传染病数据分析系统-附源码150943

摘 要

随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。

本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采springboot技术和mysql数据库来完成对系统的设计。整个开发过程首先对传染病数据分析系统进行需求分析,得出传染病数据分析系统主要功能。接着对传染病数据分析系统进行总体设计和详细设计。总体设计主要包括管理功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括传染病数据分析系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对传染病数据分析系统进行了功能测试,并对测试结果进行了分析总结,得出传染病数据分析系统存在的不足及需要改进的地方,为以后的传染病数据分析系统维护提供了方便,同时也为今后开发类似传染病数据分析系统提供了借鉴和帮助。

传染病数据分析系统开发使系统能够更加方便快捷,同时也促使传染病数据分析系统变的更加系统化、有序化。系统界面较友好,易于操作。

关键词:传染病数据分析系统; Mysql数据库;springboot;java

Springboot infectious disease data analysis system

Abstract

With the development of society, all aspects of society are taking advantage of the advantages of the information age. The advantages and popularity of the Internet make the development of various systems necessary.

Based on the practical application as the development background, this paper uses the principles and development methods of software engineering. It mainly adopts springboot technology and MySQL database to complete the design of the system. In the whole development process, firstly, the demand of infectious disease data analysis system is analyzed, and the main functions of infectious disease data analysis system are obtained. Then the overall design and detailed design of infectious disease data analysis system are carried out. The overall design mainly includes management function design, overall system structure design, system data structure design and system security design; The detailed design mainly includes the implementation of database access of infectious disease data analysis system, the specific implementation of main functional modules, the key code of module implementation and so on. Finally, the function of the infectious disease data analysis system is tested, and the test results are analyzed and summarized. The shortcomings of the infectious disease data analysis system and the areas that need to be improved are obtained, which not only provides convenience for the maintenance of the infectious disease data analysis system in the future, but also provides reference and help for the development of similar infectious disease data analysis system in the future.

The development of infectious disease data analysis system not only makes the system more convenient and fast, but also makes the infectious disease data analysis system more systematic and orderly. The system interface is friendly and easy to operate.

Key words: infectious disease data analysis system; Mysql database; springboot; java

目   录

1 系统概述

1.1课题背景

1.2 课题意义

1.3 主要内容

2 系统开发环境

2.1 开发工具及技术

2.2 springboot框架

2.3 JAVA简介

2.4访问数据库实现方法

2.5系统对MySQL数据库的两种连接方式

2.6 MySql数据库

3 需求分析

3.1 系统设计

3.2需求分析概述

3.3 系统可行性分析

3.4经济可行性

3.5操作可行性: 

3.6系统流程和逻辑

4系统概要设计

4.1 概述

4.2 系统结构

4.3 数据库设计

4.3.1 数据库实体

4.3.2 数据库设计表

5系统详细设计

5.1登录模块的实现

5.2管理员功能的实现

5.3用户功能模块

6 系统测试

6.1 测试理论

6.2 测试方法及用例

6.3测试结果

结论

致 谢

参考文献

1 系统概述

1.1课题背景

预防传染病、控制传染病疫情是全国卫生事业的一项重要内容。这项工作政策性强、涉及面广、数据量大而且准确性和实时性要求都很高。[1]为了方便从事传染病的管理工作,提高工作效率,同时为了更好地为医院诊断提供帮助,有必要开发新的传染病数据分析系统。加强传染病工作的管理与防治不仅可以减少人力、物力和财力资源的浪费,更重要的是有助于控制传染病的发生,从而进行有效地防治。传染病一直以来给人类健康带来巨大的挑战,甚至威胁到人类的生命。由于每一种新的传染病爆发的范围比较广,疫情比较严重,这给传染病的录入与研究疫苗工作带来了巨大的麻烦,因此开发传染病数据分析系统可以帮助各卫生单位及时了解各种不同传染病的发生情况以及发病规律,从而采取相应的防治措施。

本系统是为各医疗卫生单位专门研究开发的。由于社会发展迅速,人们只注重个人生活得质量而忽略周围环境的治理,因而爆发了大规模的新的传染病。因此,为了方便各家医院对传染病的控制以及管理工作,减轻他们的负担,提高工作效率。有必要开发新的传染病数据分析系统来满足本市各家医疗单位的需要。目前我市的传染病管理中心已经基本实现对传染病工作的部分管理功能,但是对于疫情的防控还处于宣传阶段,因此为了完善该功能,我开发了适合各家医院的传染病数据分析系统。

1.2 课题意义

社会主义进入新时代,经济实力越来越强。我们也变得越来越忙碌、对生活的要求也变得更加严格,对快速和方便的服务的需求也在逐渐增加。因此,对公共卫生信息化管理、服务的要求也越来越严格。为适应时代的发展,公共卫生信息化网站开始广泛地使用电脑来进行管理,并推出传染病数据分析系统网站。

于此同时,实现传染病数据分析系统网站的计算机化也是顺应时代潮流的举措,现如今预约类型正逐渐增加,浩繁的信息令公共卫生信息化迎来管理上的难题。公共卫生信息化进入高速发展的时代,公共卫生信息化的管理工作变得越来越困难,在这一客观需要的推动下,建立、完善、发展传染病数据分析系统网站,可以为管理员带来极大的方便。

本系统即为方便管理员和用户而制作的传染病数据分析系统,结合了用户的需求,设计出的一个基于Java、MySQL的传染病数据分析系统。

1.3 主要内容

传染病数据分析系统从功能、数据流程、可行性、运行环境进行需求分析。对传染病数据分析系统的数据库、功能进行了详细设计,分析了主要界面设计和相关组件设计,传染病数据分析系统的具体实现进行了介绍。从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种数据库查询、插入、删除、更新等操作,在网页中加入动态内容,从而实现传染病数据分析系统所需要的各种基本功能。

2 系统开发环境

2.1 开发工具及技术

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的springboot框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

软件开发环境及开发工具:

操作系统:Windows 10、Windows 7、Windows 8

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、VUE.js(2.X)、css3

开发工具:IDEA(2020版)/MyEclipse(10)/Eclipse、Visual Studio Code

数据库:MySQL 5.7.26(版本号)

数据库管理工具:phpstudy/Navicat

JDK版本:Java sdk8

Maven:apache-maven 3.8.1-bin

2.2 springboot框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

2.JAVA简介

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,springboot(java server pages),和XML技术。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。

2.4访问数据库实现方法

(1)首先介绍一下web数据库搜索网络上的基本步骤:

第一步:检查消费者的数据,

第二步:你必须建立与数据库的连接;

第三步:搜索数据库;

第四步:数据的结构;

第五步:该商品的结果被示出。

(2)系统,直到我MYSQL5.0 PHP集成开发环境,如使用WAMP服务器处于开机状态,并且更容易访问数据库的报告开发环境:

一个连接到MySQL数据库服务器Mysql_connect-;

语法:资源的mysql_connect(主机,商品名,密码);

请选择数据库:mysql_select_db(数据库链接标识的名称);

关闭数据库:则mysql_close();

2.5系统对MySQL数据库的两种连接方式

活动的MySQL/ MySQL库,或使用ODBC接口,MySQL数据库是一个双向链接。永久及非永久连接。

(1)永久连接:一个更永久的连接请求的最大优点是可以非常有效的客户站在密切的联系,当连接到MySQL服务器,就更好了。在起草该页面每一个孩子在这个过程中,而不是仅仅在任何时候,只有在到MySQL服务器请求连接的生命周期,一旦连接。此子过程是建立到服务器的单独连接可以是永久性的。

(2)非永久连接:他是短路。提交顺路到Web服务器,服务器处理请求并请求的页面,你要发送的浏览器客户端,然后连接断开。对于大多数网站,它经常通过有效高效率有关,但在大多数情况下,所使用的连接,但它是一个完整的时间,以避免出现任何问题,并可以增加的容量服务器承载。

2.6 MySql数据库

Mysql的语言是非结构化的,商品可以在数据上进行工作。因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,其速度、可靠性和适应性而备受关注并得到了普遍的应用。Mysql数据库在编程过程中的作用是很广泛的,为商品进行数据查询带来了方便。Mysql数据库的应用特点:灵活性强,功能强大,语言相对要简洁很多。 

数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据库管理主要是数据存储、修改和增加以及数据表的建立。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。

3 需求分析

3.1 系统设计

所谓系统分析就是,需求人员通过与用户的沟通,所获取的信息,然后把这些信息通过需求说明书的方式展示给用户和开发人员。在软件功能发展的历史长河中,很长时间,特别是最开始的时候,需求分析的重要性并不被人们所认同,例如当时美国IBM公司为英国电信公司开发一套信息管理系统,在需求不明确的情况下开始开发,最初的工期为一年,由于需求获取不清晰导致工期推迟了半年多,造成巨大损失。我们很多软件公司也存在这种情况,边需求,边开发,甚至与用户没有沟通清楚的情况下,直接照搬同类型的项目进行更改,导致到系统验收的时候,重新更改,造成了人力、物力的极大浪费。而导致这一切后果的原因就是需求获取不及时、不清楚、不全面。

3.2需求分析概述

传染病数据分析系统主要是为了提高用户的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对传染病数据分析系统的各个模块是通过许多今天的发达传染病数据分析系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

传染病数据分析系统所要实现的功能分析,对于现在网络方便,传染病数据分析系统要实现管理员、用户可以直接在平台上进行查看自己所需数据信息,这样既能节省管理的时间,不用像传统的方式,如果用户想要进行交流信息,必须双方见面进行沟通交流所需的信息,由于很多用户时间的原因,没有办法进行见面沟通交流,真的很难满足用户的各种需求。所以传染病数据分析系统的开发不仅仅是能满足用户的需求,还能提高用户的使用率。所以传染病数据分析系统必须要更快捷、有效、长期地为用户或潜在用户传递信息。建立一个传染病数据分析系统更好的交流平台,提高系统对用户交流后的信息服务的效率。此系统可以满足大多数用户所提出的问题,用户可以根据自身的需求获取相应的服务,为传染病数据分析系统提供了快捷的途径。

传染病数据分析系统在系统的手机上可以运行,主要实现了管理员后端;首页、用户管理(管理员、注册用户)更多管理(易感分析、传染病分类、传染病、症状程度、传播途径、途径分类、文章资讯)等主要功能模块的操作和管理。用户首页、易感分析、传染病、症状程度、传播途径、文章资讯等主要功能模块的操作和管理。总体分布如图3.1所示:

3.1  总体功能需求图

系统实现给用户展示的界面与该对象是面对面的,包括是否允许用户简单,方便使用,该请求的响应时间,对整体质量的主图像,整体的布局的质量。

3.3 系统可行性分析 

技术可行性:

1)硬件可行性分析

系统的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能够轻松的实现,只是需要确保系统的正常工作即可,以及拥有较高的效率。如果有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个网站的运行不顺畅。以目前普遍的个人计算机的配置而言,这是十分容易实现的 。因此,本系统的开发在硬件方面是可行的。

提供完整的技术支持和保护,确保网站的稳定,安全运行,提供24×7和24小时技术支持项目完成提供主要的服务器系统安全及时的通知和更新服务。

(2)软件可行性分析

提供一个共同的机制类似的借口动态模型,设计更集中。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择小程序作为本系统开发技术。通过上述分析,该系统的设计实现在软件方面是可行的。

因此,我们进行了两个方面的可行性研究,可以看出,该系统的开发是没有问题的。

3.4经济可行性

系统是基java语言开发的软件,所以系统在开发人力、财力要求不高,具有经济可行性。

3.5操作可行性: 

传染病数据分析系统采用java语言springboot框架,利用网络就能够进行访问和操作,且界面简单易操作,用户只要平时有在用智能手机并连接到网络,都能进行访问和操作。

传染病数据分析系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。

3.6系统流程和逻辑

系统业务流程图如图所示:

图3-1登录流程图

图3-2添加信息流程图

图3-3注册信息流程图

4 系统概要设计

4.1 概述

本系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1  系统工作原理图

4.2 系统结构

本系统架构网站,本系统的具体功能如下:

图4-2系统功能结构图

系统结构图,如图4-3所示:

图4-3系统结构

4.3 数据库设计

4.3.1 数据库实体

管理员信息属性图如图4-4所示。

 4-4 管理员信息实体属性图

用户注册信息实体属性图如图4-5所示。

图4-5用户注册信息实体属性图

4.3.2 数据库设计表

此系统需要后台数据库,下面介绍数据库中的各个表的详细信息。

classification_of_infectious_diseases

字段名称

类型

长度

不是null

主键

字段说明

classification_of_infectious_diseases_id

int

11

主键

传染病分类ID

category_of_infectious_diseases

varchar

64

传染病类别

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

infectious_diseases

字段名称

类型

长度

不是null

主键

字段说明

infectious_diseases_id

int

11

主键

传染病ID

name_of_infectious_disease

varchar

64

传染病名称

category_of_infectious_diseases

varchar

64

传染病类别

pathogenic_virus

varchar

64

致病病毒

cure_rate

varchar

64

治愈率

mortality

varchar

64

死亡率

main_route_of_transmission

text

0

主要传播途径

susceptible_person

text

0

易感人群

symptom

text

0

症状

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

pathway_classification

字段名称

类型

长度

不是null

主键

字段说明

pathway_classification_id

int

11

主键

途径分类ID

route_of_transmission

varchar

64

传播途径

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

registered_user

字段名称

类型

长度

不是null

主键

字段说明

registered_user_id

int

11

主键

注册用户ID

user_name

varchar

64

用户名

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

route_of_transmission

字段名称

类型

长度

不是null

主键

字段说明

route_of_transmission_id

int

11

主键

传播途径ID

name_of_infectious_disease

varchar

64

传染病名称

route_of_transmission

varchar

64

传播途径

number_of_infected_persons

int

11

感染人数

preventive_methods

text

0

预防方法

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

susceptibility_analysis

字段名称

类型

长度

不是null

主键

字段说明

susceptibility_analysis_id

int

11

主键

易感分析ID

name_of_infectious_disease

varchar

64

传染病名称

category_of_infectious_diseases

varchar

64

传染病类别

age_group

varchar

64

年龄段

number_of_infected_persons

int

11

感染人数

infection_rate

varchar

64

感染率

remarks

text

0

备注

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

symptom_degree

字段名称

类型

长度

不是null

主键

字段说明

symptom_degree_id

int

11

主键

症状程度ID

name_of_infectious_disease

varchar

64

传染病名称

category_of_infectious_diseases

varchar

64

传染病类别

mild_symptoms

int

11

轻度症状

moderate_symptoms

int

11

中度症状

severe_symptoms

int

11

重度症状

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

5 系统详细设计

本系统使用了springbootmysql结合的结构开发了传染病数据分析系统应用,系统中所有和数据库有关系的操作都通过一个通用类来实现,大大提高了代码的耦合性,当数据库类型等信息变化后直接修改类文件就可以了,不再需要每个页面都修改。另外本系统解决了中文的问题,也是在配置文件中添加了编码方式的形式解决的,本系统另外一个大的特点是系统对数据库的操作都单独的写在了一个类里,这样对系统的所有数据库操作都只访问这个类就可以了,不要每个页面都去写数据库的操作,提高了系统的集成性。

5.1登录模块的实现

系统的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,后台处理判断是否为合法用户,进行页面跳转,进入系统中去。

登录合法性判断过程:用户输入账号和密码后,系统首先确定输入输入数据合法性,然后在login.jsp页面发送登录请求,调用src下的mainctrl类的dopost方法来验证。

用户登录模块的IPO如下所示:

输入:用户名和密码。

处理:

1)检测用户输入的账号、密码是否正确及在数据库已对应存在。

2)从数据库中提取记录,并储存在本地的session中(timeout默认=30min)。

3)根据用户名,将其显示在系统首页上。

输出:是否成功的信息。

登录流程图如下所示。

图5-1登录流程图

系统登录界面如下所示。

图5-2系统登录界面

用户登录的逻辑代码如下。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

5.2管理员功能的实现

管理员登录到传染病数据分析系统可以查看首页、用户管理(管理员、注册用户)更多管理(易感分析、传染病分类、传染病、症状程度、传播途径、途径分类、文章资讯)等内容,如图5-3所示

图5-3管理员功能界面图

用户管理用户管理页面可以查看昵称、用户名、医信息,并可根据需要对已有的医院管理员进行编辑删除详细等操作,如图5-4所示

图5-4用户管理界面图

传染病信息,在传染病信息管理页面查看传染病名称、传染病类别、治病病毒、治愈率、死亡率、主要传播途径、易感人群、症状等信息,并可在传染病信息查询页面对已有的传染病信息进行编辑删除详细等操作,如图5-5所示:

图5-5传染病信息管理界面图

5.3用户功能模块

此页面实现用户的注册,必须注册登录后才能使用系统大部分功能,用户名不允许重复如果重复将会注册失败,并弹出相应的提示,通过js实现对输入的验证。

用户注册流程图如下所示。

图5-6用户注册流程图

用户注册界面如下图所示。

图5-7用户注册界面

用户注册关键代码如下所示。

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        query.put("username",user.getUsername());

        List list = service.select(query, new HashMap<>()).getResultList();

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        user.setUserId(null);

        user.setPassword(service.encryption(user.getPassword()));

        service.save(user);

        return success(1);

}

/**

     * 用户ID:[0,8388607]用户获取其他与用户相关的数据

     */

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")

    private Integer userId;

    /**

     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

     */

    @Basic

    @Column(name = "state")

    private Integer state;

    /**

     * 所在用户组:[0,32767]决定用户身份和权限

     */

    @Basic

    @Column(name = "user_group")

    private String userGroup;

    /**

     * 上次登录时间:

     */

    @Basic

    @Column(name = "login_time")

    private Timestamp loginTime;

    /**

     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "phone")

    private String phone;

    /**

     * 手机认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "phone_state")

    private Integer phoneState;

    /**

     * 用户名:[0,16]用户登录时所用的账户名称

     */

    @Basic

    @Column(name = "username")

    private String username;

    /**

     * 昵称:[0,16]

     */

    @Basic

    @Column(name = "nickname")

    private String nickname;

    /**

     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

     */

    @Basic

    @Column(name = "password")

    private String password;

    /**

     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "email")

    private String email;

    /**

     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "email_state")

    private Integer emailState;

    /**

     * 头像地址:[0,255]

     */

    @Basic

    @Column(name = "avatar")

    private String avatar;

    /**

     * 创建时间:

     */

    @Basic

    @Column(name = "create_time")

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private Timestamp createTime;

    @Basic

    @Transient

    private String code;

}

用户登录页面,在用户登录页面输入:用户名、密码、权限验证码等内容进行登,如图5-8所示

图5-8用户登录界面图

症状程度管理,在症状程度管理页面查看传染病名称、传染病类别、轻度症状、重度症状、重度症状等信息详细操作,如图5-9所示

图5-9症状程度面图

  6 系统测试

6.1 测试理论

软件系统测试的目的是通过测试找出在程序中的存在的错误信息和阻碍程序正常运转的安全隐患。这同时也是每一个系统软件测试的主要的规定,软件系统的应用过程中,发现一个重要的错误也是极具有很大的影响力的,一个好的测试的方案就为发展程序中存在的重大问题的;同样,一个成功的测试方案也就发现了迄今为止尚未发现的一个重要错误的测试。

软件测试的主要的好处就是为了让软件的运行情况更好,让用户的使用的过程中更加的满意。在软件工程中,软件测试是一个十分重要环节,在交付用户使用最终的软件之前,软件测试就是一个检验的过程,主要针对的是软件的软件设计开发、需求分析、系统编码各阶段结果的一个检验过程。

软件测试应遵循的原则如下:

(1) 软件测试要尽快的进行并且整个测试部分要是在整个软件开发的各个过程和细节。在发现了错误的情况下,立刻处理,这样会大大的减少软件的开发成,提高软件的质量。

(2) 在关于软件的各种测试中,例如测试的过程中使用的计划、报告等等要做到妥善的处理和保管,主要目的就是为了方便将来的对系统的维护。

(3) 群集现象是应该得到高度重视的,在软件的整个测试的过程中。就是在整个测试的过程中发现了错误的主要地方很有可能是就很多的错误的聚集的地方,所以要对这样的部分给予特殊的照顾。

(4) 对于软件的测试要尽量不要软件的设计开发人员或是机构,而是要另一方来进行测试程序,这样也是为了保证软件的测试结果的客观性以及公平公正性。

(5) 对于整个测试计划要严格的按照一定的规则来进行软件测试。

(6) 关于软件测试的过程中的用例应该是预期结果以及之前输入的数据信息构成,输入条件中的要考虑的有合理和不合理的因素都要考虑到,这样也是为了更好的帮助开发的人员更多的发现软件中存在的错误。

(7) 对于整个的测试结果进行全面的检查,尽量避免出现重复的错误。

6.2 测试方法及用例

1、功能测试

用户的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。

2、性能测试

测试软件程序的整体状态(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载和压力测试之间进行划分,在某些情况下,将两者结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但是负载测试可以测试系统如何响应增加的负载。

在对系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个系统开发所牵扯的该问题都必须一一解决,提高系统的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽了解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

测试用例:

表6.1 用户注册测试用例

用例编号

UC-TEST-001

测试名称

用户注册

前提条件

用户注册

步骤

操作描述

数据

期望结果

1

点击用户注册查看详情按钮

跳转到用户注册详情

2

点击添加按钮

跳转到添加页面

3

选中添加后按钮

跳转到用户注册页面

测试说明

用户未登录时到步骤3跳转到登录页面

测试结果

成功

测试人

表6.2 登录测试用例

情况

用户名输入

密码输入

期望结果

(1)

15546219225

1244566

提示“用户名或者密码错误,或账号未经审核

(2)

aaaaa

123456

提示“用户名或密码错误,或者账号未经审核

(3)

111

111

登陆成功

6.3测试结果

测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试用户的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。


结论

传染病数据分析系统的设计,通过互联网来解决实现信息化的网站系统,通过我四年所学的所有专业知识整合一起,进行对传染病数据分析系统进行开发设计,当然在真正着手来做的时候遇到了很多问题,一个是网站的技术问题,一个是自己之前没有单独开发过程序,动手实践比较少,面对问题的同时,自己的自信心也受到了一些打击,不过我也是快速的调整自己的状态,老师与同学讨论的方法解决了所有的困难。

毕业设计是我们所学知识应用的最佳体现,也是在考核我们四年中所学的所有的专业知识及技术应用情况,通过这样毕业设计可以更好的得到锻炼及对所学知识的复习及运用,也是一种训练和实践。传染病数据分析系统的实现,不仅巩固了我以前的知识,还对学到的知识通过结合技术进行详细了解,还结合了对跨学科效果的深入理解。

在以后我的工作中,我仍然继续努力我的计算机方面的技术,让我在后期的平台开发中可以更好更快的实现需求功能。我相信自己可以胜任更多的好工作并在工作领域做出更大的贡献。

回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作让我有了更多的信心,我相信在未来的路上,我会走的更好。

致 谢

毕业设计结束的同时也意味着四年的大学生活就要结束了。传染病数据分析系统的完成以及如何在系统运行过程中实现的更好,这其中付出了很大的努力,这段时光将会终身难忘。

在毕业设计的这一段时间里,离不开导师的细心指导,还有同学热情帮助,有时候几个同学在一起讨论系统中的某个功能模块如何实现,如何实现的更好,或是问题没得到有效的解决,没有心思做其他的事情,让我们对理想充满了动力。

在毕业设计即将结束之时首先要感谢我的指导老师,谢谢您在毕业设计和毕业论文中对我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。 课堂上,教会我们如何做人、教会我们新的知识,在课下,您又像朋友一样亲切,教会了我很多道理让我意识到先做人、后做事感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。感谢大学里教过我的每一位老师,真心祝福您们。

毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!

最后,耽误了老师的休息时间来对本文进行审阅,评议和参与论文答辩的各位老师表示深深的感谢。在此,衷心的谢谢您们!


参考文献

[1]沙之洲.Java编程语言在计算机软件开发中的应用[J].电子世界,2021(24):125-127.DOI:10.19353/j.cnki.dzsj.2021.24.052.

[2]李雅琴.Java编程语言的优势及其应用实践研究[J].互联网周刊,2021(24):60-62.

[3]涂华燕.基于MySQL宿舍管理系统数据库设计[J].电脑编程技巧与维护,2021(12):104-106.DOI:10.16184/j.cnki.comprg.2021.12.038.

[4]冯冬艳.MySQL集群主从复制的原理、实现与常见故障排除[J].山西电子技术,2021(06):47-48+57.

[5]闫继正,张雷,张海涛.基于MySQL的空管设备集中监控系统数据库设计[J].微处理机,2021,42(06):47-51.

[6]宋文彬.探讨Java平台及应用Java技术的安全问题研究[J].数字通信世界,2021(12):51-52+60.

[7]张文,方巍,贾雪磊.基于springboot框架的合租系统设计与实现[J].计算机技术与发展,2021,31(11):159-164.

[8]赵学作.MySQL数据库主从数据同步的设置[J].网络安全和信息化,2021(11):94-97.

[9]朱姝.Java程序设计语言在软件开发中的运用初探[J].电子测试,2021(21):72-74.DOI:10.16520/j.cnki.1000-8519.2021.21.025.

[10]吴迪.Java编程语言在计算机软件开发中的应用[J].信息与电脑(理论版),2021,33(20):29-31.

[11]王江霖,黄彩霞,樊旭龙.基于springboot框架的网络资源共享平台的研究与实现[J].电脑知识与技术,2021,17(28):76-78.DOI:10.14004/j.cnki.ckt.2021.2999.

[12]蒙笑阳.基于springboot框架的室内定位导航系统[J].铁路通信信号工程技术,2021,18(09):38-42.

[13]方生.基于“MVVM”模式的“Web”前端的设计与实现[J].电脑知识与技术,2021,17(20):147-149.DOI:10.14004/j.cnki.ckt.2021.2004.

[14]冯丽露,康耀龙,高晓晶,王涛.基于springboot框架的数据结构在线评测系统设计与实现[J].中国信息技术教育,2021(13):86-89.

[15]Jun Ma, Jun Mao, Long Chen , Lili Yin. Design and Implementation of Multi-terminal Debugging System based on springboot Framework[J]. International Core Journal of Engineering,2021,7(7):

[16]曹华山.springboot框架在Web应用开发中的设计与实现[J].无线互联科技,2021,18(11):108-109.

[17]陈钊.springboot框架在Web应用开发中的设计与实现研究[J].电脑知识与技术,2021,17(10):226-227.DOI:10.14004/j.cnki.ckt.2021.1097.

[18]游俊慧.MVC、MVP、MVVM三种架构模式的对比[J].办公自动化,2020,25(22):11-12+27.

[19]Xiaojie Guo,Tingmei Wang*. Design and Implementation of Graduate Information Management System Based on springboot Framework[J]. Journal of Simulation,2020,8(2):

[20]Andrea Capiluppi,Nemitari Ajienka. Lexical content as a cooperation aide: A study based on Java software[J]. The Journal of Systems & Software,2020,164(prepublish):

点赞+收藏+关注  →私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值