【网站项目】“健康早知道”小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。

  1. 代码可以私聊博主获取。🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《python网站项目》600套

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目演示

 

摘 要

随着信息化时代的到来,管理系统都趋向于智能化、系统化,“健康早知道”微信小程序也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而“健康早知道”微信小程序能很好地解决这一问题,轻松应对平时健康信息的工作,既能提高人力物力财力,又能加快工作的效率,取代人工管理是必然趋势。

本“健康早知道”微信小程序城以ssm作为框架,b/s模式以及MySql作为后台运行的数据库,同时使用Tomcat用为系统的服务器。本系统主要包括以下功能模块首页、个人中心、医生管理、用户管理、健康信息管理、健康评估管理、在线留言、系统管理等功能,通过这些功能的实现能够基本满足日常健康信息的操作。

本文着重阐述了“健康早知道”微信小程序的分析、设计与实现,首先介绍开发系统和环境配置、数据库的设计,接着说明功能模块的详细实现,最后进行了总结。

关键词:“健康早知道”微信小程序; ssm;MySql数据库;Tomcat

第一章 绪论

1.1  研究背景

科学技术日新月异的如今,计算机在生活各个领域都占有重要的作用,尤其在信息管理方面,在这样的大背景下,学习计算机知识不仅仅是为了掌握一种技能,更重要的是能够让它真正地使用到实践中去,以创新的视角去不断方便人们的生活,推动对新知识的学习,培养自学能力,锻炼动手实践的本领。现代的“健康早知道”微信小程序,也应该摆脱人工管理的模式,使用计算机技术来进行信息管理工作。所以本次系统设计的健康信息管理结合了文字、图像,并能实现健康信息管理的功能,这也是一般“健康早知道”微信小程序的重要的要素。“健康早知道”微信小程序经过几年的实践和总结正在往更深入的方向发展。由此,人们要改善系统功能迫在眉睫。随着科学技术的飞速发展,“健康早知道”微信小程序也要不断完善其工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐等存在的问题。所以要通过计算机胜任健康信息管理的工作,使“健康早知道”微信小程序更加准确、方便及快捷。

因此,开发出一套高效率、低差错的“健康早知道”微信小程序是十分必要。本系统主要目的是全面实现“健康早知道”微信小程序数字化,管理员对于用户的所有信息能够全部掌握,而用户能够对自己的健康信息能够有一个直观的了解。

1.2  研究现状

现如今,部分医疗机构是没有提供健康信息管理的服务,就是新兴医疗机构尽管实行了健康信息管理,但“健康早知道”微信小程序进行的管理力量远远不够,所以有很多医疗机构的健康信息管理工作只停留在传统的健康信息服务。同时,很多商家本身资金是有限再加上也缺少专业水平的工作人员,所以管理手段较为落后,也就很难提高健康信息的管理效率,同时也就不能很好的为医疗机构的用户提供更为完善的服务。现在医疗机构管理都是通过手动来进行管理记录及操作,不但麻烦琐碎,还经常出现错误,给广大用户带来很不便,同时也需要大量的人力、物力和财力,极大的浪费了健康信息管理的资源。“健康早知道”微信小程序是医疗行业的一个重要组成部分,随着医疗行业的快速发展,人们慢慢地来希望“健康早知道”微信小程序能够提供更为合理及完善的健康信息服务。现在,好的健康信息管理也成为广大用户们选择“健康早知道”微信小程序的关键。

1.3  系统实现的功能

本次设计任务是要设计一个“健康早知道”微信小程序,通过这个系统能够满足用户对自己健康信息的管理。系统的主要功能包括:首页、个人中心、医生管理、用户管理、健康信息管理、健康评估管理、在线留言、系统管理等功能。

管理员可以根据系统给定的账号进行登录,登录后可以进入“健康早知道”微信小程序对健康信息所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。

该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看健康信息及对个人信息进行修改等功能。

1.4  小程序实现的特点

本系统提供给管理员对首页、个人中心、医生管理、用户管理、健康信息管理、健康评估管理、在线留言、系统管理等诸多功能进行管理。本系统对于用户输入的任何信息都进行了一定的验证,为管理员操作提高了效率,也使其数据安全性得到了保障。

1.5  本文的组织结构

本文的组织结构如下:

1、绪论。综述了本文的研究背景,分析了“健康早知道”微信小程序的结构;更好的从用户的角度出发,发现当今“健康早知道”微信小程序中的不足,同时要指出本次系统中的特色。

 2、对系统主要的使用技术,开发环境、环境配置的介绍。介绍了本次开发所用的系统开发环境MyEclipse,还介绍了Tomcat环境配置、SSM框架和MySql环境配置。

3、系统的设计与实现。介绍了开发“健康早知道”微信小程序的思路并进行了需求分析,在需求分析的基础上进行了总体设计、详细设计以及数据库等相关方面介绍;该部分是全文的主旨。

4、系统功能模块具体实现。对开发中一些主要具体功能的实现进行描述。涉及到数据库、页面参数传递等相关知识。

5、对系统进行测试;

6、总结;对整个论文及设计过程进行总结,指出系统设计过程设计中存在的不足;后期还有待完善的地方等。

第二章开发技术与环境配置

以Java语言为开发工具,利用了当前先进的SSM框架,以MyEclipse10为系统开发工具,MySQL为后台数据库,开发的一个“健康早知道”微信小程序。

2.1 Java语言简介

Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。

Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。

 2.2.微信开发者工具

在传统web浏览器中,在加载htm15页面时先加载视图层的html和css,后加载逻辑层的java script,然后返回数据并在浏览器中展示页面。而微信开发者工具的系统层是基于Native System的,视图层和逻辑层会同时被加载。微信小程序的这种逻辑方式大大的优化了页面响应速度,减少了页面加载的等待时间,提高了用户体验。微信开发者工具可以实现同步本地文件,开发调试,编译预览,上传,发布等一整套流程。

2.3 SSM框架

开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。

2.4 MySQL环境配置

1)本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。

2)修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:

cd C:\Program Files\MySQL\bin

MySQLadmin -u root -p password 123

回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。

2.5 MyEclipse环境配置

安装完MyEclipse后选择myeclipse“Window->Preferences”

(1)配置myeclipse的jre为sun的jdk,不要用myeclipse的默认jdk:

选择“java->Installed JREs”,勾中里面的“jdk1.7”.

(2)配置编译的级别为6.0:

选择“Compiler->Compiler compliance level”的值为“6.0”。

(3)配置myeclipse的默认的文件编码格式为“UTF-8”:

选择“General->Workspace”,选中“Text file encod”下面的“Other”,设置里面的值为“UTF-8”。

(4)去掉myeclipse的JSP的验证:

选择“MyEclipse->Validation”,将“Build”列的所有勾都给去掉,这样在编译时因为避免了jsp的验证,所以编译的速度会快很多.

2.6 mysql数据库介绍

数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。简单来讲,存储粮食的仓库叫粮仓存储数据的仓库就叫数据库。数据库在软件项目中扮演着操作管理数据的角色同时还能够保证数据的独立性、一致性和安全性,并为系统访问数据提供有效方式不仅如此数据库还能大大减少程序员开发程序时间。在日常能够接触实用的一般有两类数据库,一类是以(Oracle,DB2,SQL Server,MySQL )为代表的关系型数据库和以(NoSql、MongeDB)为代表的非关系型数据库,两类数据库各有各的优缺点。其中非关系型数据库又分为网络数据库和层级数据库。-网络数据库是指在计算机网络系统中应用数据库技术然后借助网络技术将存储于数据库中的大量信息及时发布出去;在成熟的数据库技术的帮助下,计算机网络实现了对网络中的各种数据的有效管理,用户与网络中的数据库数据交互也借此得以进行。作为最成功的典型层次模型数据库系统,IMS是最早研制成功的数据库系统。1970年由埃德加•科德于首先提出的关系模型融合了“科德十二定律”。现如今即使很多人仍旧不看好这个模型,但它依旧是数据存储的传统标准。关系数据结构、关系操作集合、关系完整性约束构成了关系模型。作为数据库另外一种区分方式的存储介质被大家分为磁盘和内存这 两种。例如:关系型数据库就存储在磁盘中,非关系型数据库则存储在内存中。典型的关系型数据库有:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL、SQLite。小型关系型数据库:Microsoft Access,SQLite;中型关系型数据库:SQL Server,Mysql;大型关系型数据库:Oracle,DB2。

大家常用的其他关系形数据库系统大多是MySQL AB公司开发的,其中MySQL也是由这家开发的,所应用的分布式数据库管理系统是客户机/服务器体系结构得益于此结构,而且用这个系统建造的数据库具有很强的适用性,用C和C++编写的系统让他拥有很强的适用性所以他可以在大部分操作系统上使用并能和php结合。不同的API函数针对不同的语言(C,C++,JAVA等)来处理不同数据;为了更好地支持多CPU多线程通过使用核心线程来实现;提供的存储机制分为事务和非事务存储机制;MySQL采用双重许可,不管是从MySQL AB公司获得正式的商业许可又或是许可条款下以免费软件或开放源码软件的方式使用MySQL软件都是被允许的。

MySQL作为数据库拥有很多优点,其中由于是开放源码,所以使用成本特别低,而它体积小的特点决定了速度快的特性。因此,My Sql具有开放性,多线程支持多种API,可跨数据库连接,国际化,数据库体积巨大等特点。简单的来说 ,MySql是一个开放的、快速的、多线程的、多用户的数据库服务器。

选用MySQL作为数据库的其中一个原因就是支持多线程,支持多线程的特点为利用系统资源提供了便捷并因此大大提高了系统运行速度和效率,而且连接数据库的方式多样包括但不局限于TCP/IP、ODBC和JDBC等途径;但是没有东西是完美无缺的,即便MySQL也如此,虽说它有着众多优点但其功能不够强大,规模也相对较小,无法应对大型数据哭的处理。但是对于本系统来说,选用MySQL作为数据库,其功能性能已绰绰有余,如果要进行二次开发的数据库表结构空间的扩展也是完全可行的。综上所述,MySQL是作为本系统数据库的最优选择。

2.7 B/S架构

B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。

图2-1  B/S模式三层结构图

第三章系统分析与设计

3.1 可行性分析

一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本网站来补充线下健康信息管理模式中的缺限,去解决其中的不足等,通过对本微信小程序,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该小程序能实现更大的意义和价值,小程序完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该“健康早知道”微信小程序的开发设计中,对技术、经济、操作方面进行了可行性分析;

3.1.1技术可行性

本系统开发选择java语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,java俨然已成为下一代互联网的Web标准。所以后台设计选择使用mysql数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。

3.1.2操作可行性

现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。

3.1.3经济可行性

“健康早知道”微信小程序,该网站软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的健康信息管理,同时还能实现对人力资源和管理资源的有效节约,该“健康早知道”微信小程序在经济上完全可行。

3.2  需求分析

利用ssm、Java、MyEclipse和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个“健康早知道”微信小程序,来进行记录用户的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:

(1)系统合理显示健康信息管理界面、医学知识界面、在线留言等界面。

(2)用户、医生和管理员所有的信息都保存与数据库中。

(3)对健康信息能够进行查询、修改、删除、添加等操作。

3.3  总体设计

根据“健康早知道”微信小程序的功能需求,进行系统设计。

前台功能:用户和医生进入app可以对首页、医学知识、在线留言、我的等功能进行操作;

后台主要是管理员,管理员功能包括首页、个人中心、医生管理、用户管理、健康信息管理、健康评估管理、在线留言、系统管理等;

系统对这些功能进行整合,产生的功能结构图如下:

图3-1系统总体结构图

3.4  数据库设计与实现

在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。

3.4.1  数据库概念结构设计

数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。

用户注册实体属性图如下所示:

图3-2用户注册实体属性图

评估信息实体属性图如下所示:

图3-3评估信息实体属性图

3.4.2数据库具体设计

根据E-R图,设计每张表的变量名,变量的类型及主键等如下。

表名3-1:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuming

varchar

200

用户名

mima

varchar

200

密码

xingming

varchar

200

姓名

xingbie

varchar

200

性别

touxiang

varchar

200

头像

shouji

varchar

200

手机

表名3-2:医生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yishenggonghao

varchar

200

医生工号

mima

varchar

200

密码

yishengxingming

varchar

200

医生姓名

yishengxingbie

varchar

200

医生性别

yishengzhaopian

varchar

200

医生照片

yishengzhicheng

varchar

200

医生职称

lianxidianhua

varchar

200

联系电话

表名3-3:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表名3-4:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表名3-5:医学知识

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

varchar

200

图片

content

longtext

4294967295

内容

表名3-6:在线留言

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

留言人id

username

varchar

200

用户名

content

longtext

4294967295

留言内容

cpicture

varchar

200

留言图片

reply

longtext

4294967295

回复内容

rpicture

varchar

200

回复图片

表名3-7:健康信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuming

varchar

200

用户名

xingbie

varchar

200

性别

xingming

varchar

200

姓名

touxiang

varchar

200

头像

nianling

int

年龄

shengao

varchar

200

身高

tizhong

varchar

200

体重

xinlv

varchar

200

心率

xueya

varchar

200

血压

yinshixiguan

varchar

200

饮食习惯

yundongxiguan

varchar

200

运动习惯

xinxibeizhu

varchar

200

信息备注

riqi

date

日期

表名3-8:健康评估

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuming

varchar

200

用户名

xingming

varchar

200

姓名

pingguqingkuang

varchar

200

评估情况

pinggutupian

varchar

200

评估图片

pingguneirong

longtext

4294967295

评估内容

riqi

date

日期

yishenggonghao

varchar

200

医生工号

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

表名3-9:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

第四章  系统功能的具体实现

4.1小程序端

登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如图4-1所示。

图4-1用户登录界面图

用户和医生登录小程序端,可以对首页、医学知识、在线留言、我的等功能进行详细操作,如图4-2所示。

图4-2小程序端首页界面图

评估信息,在评估信息页面可以查看图片、日期、用户名、性别、姓名、年龄、身高、体重、心率、血压、饮食习惯、运动习惯、信息备注等信息,医生可进行评估操作;如图4-3所示。

图4-3评估信息界面图

用户,在我的页面可以对健康信息、健康评估、在线留言等详细信息进行操作,如图4-4所示。

图4-4用户功能界面图

用户信息,在用户信息页面通过填写用户名、密码、姓名、性别、头像、手机等内容进行保存操作,如图4-5所示。

图4-5用户信息界面图

医生,在我的页面可以对健康信息、健康评估、在线留言等详细信息进行操作,如图4-6所示。

图4-6医生功能界面图

4.2 后台管理员功能模块

登录,管理员通过输入账号、密码,并点击登录进行系统登录操作,如图4-7所示。

图4-7管理员登录界面图

管理员登录系统后,可以对首页、个人中心、医生管理、用户管理、健康信息管理、健康评估管理、在线留言、系统管理等功能进行相应操作,如图4-8所示。

图4-8管理员功能界面图

用户管理,在用户管理页面可以对索引、用户名、姓名、性别、头像、手机等内容进行详情、修改或删除等操作,如图4-9所示。

图4-9用户管理界面图

医生管理,在医生管理页面可以对索引、医生工号、医生姓名、医生性别、医生照片、医生职称、联系电话等内容进行详情,修改或删除等操作,如图4-10所示。

图4-10医生管理界面图

健康信息管理,在健康信息管理页面可以对索引、用户名、性别、姓名、头像、年龄、身高、体重、心率、血压、饮食习惯、运动习惯、信息备注、日期等内容进行详情或删除等操作,如图4-11所示。

图4-11健康信息管理界面图

健康评估管理,在健康评估管理页面可以对索引、用户名、姓名、评估情况、评估图片、日期、医生工号等内容进行详情,修改或删除等操作,如图4-12所示。

图4-12健康评估管理界面图

在线留言,在在线留言页面可以对索引、用户名、留言内容、留言图片、回复内容、回复图片等内容进行详情,修改,回复或删除等操作,如图4-13所示。

图4-13在线留言界面图

系统管理,在医学知识页面可以对索引、标题、图片等内容进行详情,修改或删除等操作,还可以对轮播图管理进行详细操作;如图4-14所示。

图4-14系统管理界面图

第五章 系统测试

系统测试是软件开发过程中最后一步,但也是不可或缺的重要的一步,没有人可以保证一次性编写完成的系统不会出错,而系统测试就是将自己开发的系统成为成品前的最后一步。在测试过程中需要进行严谨细致的测试,要尽可能全面地在不同情况下运行该系统,排除一切出现错误的可能。

系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。

软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:

测试用例1及测试过程:

登录:录入登录信息,账号,密码,权限,然后单击登录进行操作,会出现两种情况:一种情况是登录成功,进入用户相应的功能界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;

测试用例2及测试过程:

管理员登录:录入登录信息,管理员账号,密码,权限,然后单击登录进行操作,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。一种情况是登录成功,进入管理员界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;

总 结

   在这次毕业设计中,我使用了SSM框架,选择MySQL作为后台数据库进行访问及修改。在设计开始之初,我也在苦恼于系统的逻辑功能的具体实现,因为我对于健康信息管理的概念还较为模糊,其间我也查询了大量的网上资料,清楚了解实际生活中健康信息管理主要面对的对象和管理需要完成的基本功能。

   虽然在这过程中也遇到了许多的困难,主要有系统逻辑功能不合适和系统设计中出错,当在自己查阅资料无法解决之时,我也会与同学和老师进行请教和讨论,所以在这个过程之中,也让我清楚的认识到自己的不足以及团队的力量才是最大,以后不论是在学习还是工作中,都要融入到集体之中,那样自己才会成长的更快。

   当然,在此次设计中,仍然存在着很多的不足,本来之前我想让其系统可以更为完美的实现角色与权限之间的控制,让系统中每一次的权限操作都进行控制,但是也因为时间的不足以及本人的能力有限,并未完成,我希望自己在以后的学习中继续完善,使这个系统更为贴近实际的操作。

参考文献

[1]杨选辉.信息系统分析与设计[J].北京:清华大学出版社.2017

[2]钱雪忠.数据库原理及应用[M].北京:北京邮电大学出版社.2017.08

[3]吴建.张旭东.java网络开发入门与实践[J].人民邮电出版社.2016

[4]贺松平.基于MVC的B/S的架构的研究及应用[D].武汉:华中科技大学.2016

[5]毕国锋.java技术的Web应用程序三层设计模型研究[J].黑龙江科技信息.2017.03

[6]青龙老贼,赵黎,方雨,刘琪.微信终极秘籍:精通小程序商业运营[M].北京:电子工业出版社,2019.

[7]戴晟晖.微信公众平台搭建、开发与实践指南[M].北京:中国铁道出版社,2016.

[8]微网.微商城细节知多少?微信小程序在未来几年的发展方向[EB/OL].2019.

[9]李刚.疯狂Ajax讲义:jQuery/ExtJS/Proto.义:jQuery/ExtJS/Prototype/DWR企业应用前端开发实战[M].3版.北京:电子工业出版社,2018.

[10]PaulDeck,林仪明,崔毅.SpringMVC学习指南[M].北京:民邮电出版社,2017

[11]王珊.数据库系统原理教程[M].北京:清华大学出版社,2018,56.

[12]求是科技.java数据库开发技术与工程实践[M].北京:人民邮电出版社,2016,131.

[13]王群,李馥娟.java数据库系统开发完全手册[M].北京:人民邮电出版社,2016.3.39-44

[14]李严,于亚芳,王国辉.java数据库开发实例解析[M].北京:电子工业出版社,2019.12.78-93

[15]王国辉、牛强、李南南java工程应用与项目实践[M].北京:电子工业出版社,2015.4.162-171.

核心代码展示

/**
 * 公告通知
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-09 11:33:59
 */
@RestController
@RequestMapping("/news")
public class NewsController {
    @Autowired
    private NewsService newsService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( NewsEntity news){
       	EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
      	ew.allEq(MPUtil.allEQMapPre( news, "news")); 
        return R.ok().put("data", newsService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(NewsEntity news){
        EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
 		ew.allEq(MPUtil.allEQMapPre( news, "news")); 
		NewsView newsView =  newsService.selectView(ew);
		return R.ok("查询公告通知成功").put("data", newsView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody NewsEntity news, HttpServletRequest request){
        //ValidatorUtils.validateEntity(news);
        newsService.updateById(news);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        newsService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = newsService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗豆包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值