本科生毕业设计(论文)
基于JAVA的云南美食食谱网站
第一章 绪论...................................................................................... 2
1.1研究背景与意义........................................................................... 2
1.2系统研究现状............................................................................... 2
1.3系统研究的主要内容.................................................................... 3
第二章 关键技术介绍...................................................................... 4
2.1 Java语言简介............................................................................... 4
2.2 springboot框架............................................................................ 4
2.3 vue框架........................................................................................ 4
2.4 MySQL数据库............................................................................. 5
2.5 B/S模式........................................................................................ 5
第三章 系统需求分析...................................................................... 6
3.1设计目标....................................................................................... 6
3.2系统可行性分析........................................................................... 6
3.2.1技术可行性............................................................................................. 6
3.2.2经济可行性............................................................................................. 6
3.2.3操作可行性............................................................................................. 6
3.3系统UML用例分析..................................................................... 7
3.4系统流程分析............................................................................... 8
3.4.1系统的流程图......................................................................................... 8
3.4.2用户登录逻辑流程图............................................................................. 9
第四章 系统设计............................................................................ 10
4.1系统功能模块设计...................................................................... 10
4.2 数据库设计................................................................................ 10
4.2.1数据库概念设计................................................................................... 10
4.2.2 数据库表设计...................................................................................... 11
第五章 系统实现............................................................................ 22
5.1前台功能实现............................................................................. 22
5.1.1首页页面功能实现............................................................................... 22
5.1.2个人中心页面实现............................................................................... 24
5.2管理员模块实现......................................................................... 24
第六章 系统测试............................................................................ 29
6.1测试目的..................................................................................... 29
6.2测试方法..................................................................................... 29
6.3系统测试用例............................................................................. 29
6.3.1系统登录模块的测试........................................................................... 29
6.3.2用户中心模块的测试........................................................................... 30
6.3.3用户管理模块的测试........................................................................... 31
结论.................................................................................................. 32
参考文献.......................................................................................... 33
致谢.................................................................................................. 34
摘要
云南美食食谱网站是一个专注于展示和分享云南特色菜肴做法的平台,网站收录了丰富的地方风味美食,提供详细的烹饪步骤和食材介绍,旨在传承和推广云南多元的饮食文化。本系统是基于SpringBoot框架开发的云南美食食谱网站,实现了云南美食的美食类型管理、美食信息管理、订单信息管理、美食排行榜管理、制作方式管理、食材分类管理、食材信息管理、美食论坛等功能。在本系统的设计和实现过程中,遵循了面向对象的设计原则和MVC设计模式,使得系统具有较好的可扩展性和可维护性。
关键词:美食食谱;MySQL数据库;springboot框架
The Yunnan Cuisine Recipe Website is a platform dedicated to showcasing and sharing Yunnan's unique cuisine. The website includes a rich collection of local flavors and provides detailed cooking steps and ingredient introductions, aiming to inherit and promote Yunnan's diverse culinary culture. This system is a Yunnan cuisine recipe website developed based on the SpringBoot framework, which implements functions such as food type management, food information management, order information management, food ranking management, preparation method management, ingredient classification management, ingredient information management, and food forum management for Yunnan cuisine. In the design and implementation process of this system, the object-oriented design principles and MVC design pattern were followed, making the system have good scalability and maintainability.
Keywords: Food recipes; MySQL database; Springboot framework
第一章 绪论
1.1研究背景与意义
云南,位于中国西南边陲,是一个历史悠久、民族众多的省份。这里不仅风景秀丽、气候宜人,而且美食种类繁多,具有独特的地方特色。云南美食融合了汉族、彝族、傣族、白族等多民族的饮食文化,形成了独树一帜的烹饪风格。尽管云南美食文化丰富多彩,但在全国范围内乃至国际上的知名度和影响力仍有待提升。随着生活节奏的加快和信息传播的迅速,人们对于便捷获取食谱和学习烹饪技巧的需求日益增长。建立一个系统性强、内容丰富、易于使用的云南美食食谱网站,对于推广和传承云南美食文化具有重要意义。
构建一个专注于云南美食的食谱网站,可以有效地集中展示云南的特色菜肴和烹饪技艺,为喜爱云南美食的人们提供一个学习、交流和分享的平台。通过这个平台,用户不仅可以轻松地找到各种云南美食的制作方法,还可以了解到每种食物背后的文化故事和健康理念,从而增进对云南文化的理解和认同。网站还可以作为云南饮食文化的宣传窗口,吸引更多国内外游客前来体验和品尝,促进当地旅游业的发展。对于云南省内的餐饮业者而言,该网站也能提供宝贵的信息资源,帮助他们提升服务质量,创新菜品,拓展业务。云南美食食谱网站的建设不仅有助于保护和传承珍贵的饮食文化遗产,还能促进地方经济的发展,增强云南在全国乃至全球的文化软实力。
1.2系统研究现状
在中国,随着互联网技术的发展和地方文化的推广,各个地区的美食文化逐渐受到全国乃至全世界食客的关注。云南作为多民族聚居的省份,其独特的风土人情孕育了丰富多彩的美食文化。近年来国内对云南美食的研究主要集中在食谱的收集整理、烹饪技艺的传承与创新以及美食文化的传播上。各类美食节目、旅游指南和网络平台都开始关注并介绍云南的特色菜肴,如过桥米线、云南小锅米线、鲜花饼等。一些专注于地方菜系的美食食谱网站也开始兴起,这些平台不仅为热爱云南美食的人们提供了学习和交流的空间,也推动了云南美食文化的保护和发展。
在国际上,对于中国美食文化的兴趣日益浓厚,特别是对于那些具有独特地域特色和文化内涵的地方美食。云南美食以其多样性和独特性吸引了众多外国食客和研究者的关注。国外的研究更多地从文化交流和旅游体验的角度出发,探讨如何将云南美食作为一种文化符号进行推广。一些国际美食杂志、旅游指南和文化交流项目通过专题报道、烹饪展示和美食节等形式,向世界介绍云南的美食和烹饪艺术。也有外国研究者通过对云南食材和烹饪方法的研究,探索云南美食在健康饮食和可持续发展方面的潜在价值。尽管国外对云南美食的研究不如国内深入广泛,但其研究成果和推广活动对于提升云南美食的国际知名度和影响力起到了积极作用。
1.3系统研究的主要内容
本系统选用Java作为后端编程语言,并采用Spring Boot框架,这为应用程序提供了轻量级、高效的开发环境。在数据处理方面,使用MySQL数据库,以满足大规模数据存储和查询的需求。前端技术方面,通过HTML、CSS、JavaScript和Vue.js构建出富有互动性和易用性的用户界面。开发过程中选用了Eclipse作为主要的编程工具,因其强大的开发功能和易用性大大提升了编程效率。此外,Navicat作为数据库管理工具,用于简化和优化数据库操作,以提升开发效率和项目的整体质量。整体来看,这个技术栈为管理系统的开发带来了效率和稳定性的双重保障。系统分管理员和用户两个角色,主要实现了对个人中心、用户管理、美食类型管理、美食信息管理、订单信息管理、美食排行榜管理、制作方式管理、食材分类管理、食材信息管理、美食论坛、系统管理等功能进行操作。
第二章 关键技术介绍
2.1 Java语言简介
Java是一种广泛应用于软件开发的高级编程语言。它由Sun Microsystems(现在是Oracle Corporation)的詹姆斯•高斯林(James Gosling)等人在20世纪90年代初开发而成。Java的设计目标是实现“一次编写,到处运行”的原则,即通过Java编写的程序可以在不同的操作系统和硬件平台上运行。
Java具有简单、面向对象、健壮、安全、跨平台等特点,因此被广泛应用于各个领域的软件开发,尤其是Web应用程序和移动应用程序的开发。Java的语法类似于C++,但相对来说更加简洁和易于理解。它支持面向对象的编程范式,提供了类、继承、多态等常见的面向对象概念。
Java的跨平台性是其最重要的特点之一。Java程序在编译时会被编译成字节码(bytecode),而不是直接编译成机器码。这些字节码可以在Java虚拟机(JVM)上运行,而JVM则负责将字节码转换为特定平台的机器码。这使得Java程序可以在任何安装了Java虚拟机的计算机上运行,无需针对不同的操作系统进行重新编译。
Java还提供了丰富的类库和API(应用程序接口),使得开发人员可以更加高效地编写代码。它包括了各种各样的功能模块,如图形界面、网络通信、数据库连接等,这些模块大大简化了开发过程,提高了开发效率。
总之,Java是一种强大而灵活的编程语言,具有广泛的应用领域和良好的跨平台性能。无论是开发Web应用程序、移动应用程序还是嵌入式系统,Java都是一个值得学习和掌握的重要工具。
2.2 springboot框架
Spring Boot是一个基于Spring框架的开源项目,它旨在简化Spring应用程序的创建、配置和部署过程。Spring Boot提供了一系列预设的默认配置,使得开发者可以快速搭建一个独立运行的应用。它还支持通过插件扩展功能,以满足不同场景的需求。Spring Boot具有自动配置、内嵌Web服务器、独立运行等特性,使得开发者能够更加专注于业务逻辑的开发。此外,Spring Boot还提供了丰富的依赖管理,方便开发者引入所需的库和组件。总之,Spring Boot是一个高效、便捷的开发工具,能够帮助开发者快速构建出高质量的Spring应用。
2.3 vue框架
Vue.js是一款轻量级的JavaScript框架,用于构建用户界面。它采用了MVVM(Model-View-ViewModel)架构模式,使得开发者可以更加高效地编写代码。Vue.js具有简单易学、灵活、高性能等特点,同时支持响应式数据绑定和组件化开发,使得开发者可以快速构建复杂的单页应用。Vue.js还拥有丰富的插件和工具库,如Vue Router、Vuex等,可以帮助开发者更好地完成项目开发。总之,Vue.js是一个非常优秀的前端框架,值得学习和使用。
2.4 MySQL数据库
MySQL是一种开源的关系型数据库管理系统(RDBMS),被广泛应用于各种规模的企业和个人项目中。它是由瑞典MySQL AB公司开发并推出的,后来被Sun Microsystems收购,最终成为Oracle公司的一部分。MySQL以其高性能、可靠性和灵活性而闻名,成为最受欢迎的数据库之一。
MySQL具有许多优点,其中之一是其简单易用的特性。它采用了SQL(Structured Query Language)作为查询语言,使得用户可以通过简单的命令和语法来操作数据库。MySQL提供了丰富的文档和社区支持,使得初学者可以快速上手并解决问题。MySQL还具备出色的性能和扩展性。它可以处理大量的数据,并支持高并发访问。MySQL使用了多线程架构和高效的索引机制,以提供快速的数据读写和查询响应时间。MySQL还支持主从复制和分布式架构,可以轻松地实现数据的备份和负载均衡,满足不同规模和需求的项目。MySQL的可靠性和稳定性很高。它具备ACID(原子性、一致性、隔离性和持久性)特性,确保数据的完整性和一致性。MySQL还提供了多种备份和恢复机制,可以防止数据丢失和故障发生。MySQL支持多种编程语言的接口,如Python、Java、PHP等,使得开发人员可以方便地与数据库进行交互。它还提供了丰富的存储引擎选项,如InnoDB、MyISAM等,以满足不同应用场景下的需求。
2.5 B/S模式
B/S模式,即浏览器/服务器模式,是一种常见的网络应用架构模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互。相比于传统的C/S模式,B/S模式具有许多优势。B/S模式不需要安装客户端软件,只需通过浏览器访问网页即可使用,大大降低了部署和维护成本。B/S模式实现了跨平台和跨设备的应用访问,用户可以在任何具有浏览器的设备上使用应用程序。B/S模式将应用逻辑集中在服务器端,提高了系统的安全性和稳定性,并方便进行版本升级和功能扩展。B/S模式还支持多用户同时访问,实现了信息共享和协同办公。
第三章 系统需求分析
3.1设计目标
建成一个用 java 结合 MySQL 数据库开发的云南美食食谱网站,该系统已经具备整个云南美食管理的能力,可以充分地让注册的用户感受到由云南美食食谱网站所带来的便捷服务。在此基础上继续完善系统的功能,使其能够动态管理用户信息的功能。建立更加完善的基础的、专业的数据库设计,提高系统整体的性能。使得用户能够更有兴趣来使用本系统。
3.2系统可行性分析
可行性研究的目的是确定问题是否值得去解决,以便判断原定的系统规模是否现实,以及所带来的效益是否大于投资成本。从本质上看,可行性研究是为了以抽象的方式对系统进行分析和设计,并列出其规模与目标。因此,在分析和确定问题定义之后,从技术可行性、经济可行性和操作可行性三个方面分析,绘制系统流程图,从而对系统进行可行性研究。
3.2.1技术可行性
本项目在开发后端时,使用springboot开发框架进行开发。由于springboot开发框架是由java编写的后端程序框架。在其内部包含了一个轻量级的、独立的Web服务器,易于开发和测试。并且springboot支持序列化操作,能够生成或读取springboot模型实例。所以,本系统具有技术可行性。
3.2.2经济可行性
本系统设计与实现的开发软件需要从相关网站上购买下载,因此开发方面的支出主要集中在购买相关开发软件上。因为本项目开发周期短、维护费用不大等优点,系统投入使用后所能够获得的效益远远大于系统开发成本。所以,本系统具有经济可行性。
3.2.3操作可行性
这款云南美食食谱网站,是电子商务技术应用于网络管理中的实现。系统的后台界面,使得网站管理人员可以随时添加和修改系统中相关关键性信息。在用户交互界面,也无需在客户端安装其他应用程序,仅通过本项目中添加的外部在线聊天API就可以进行交流互动。为了使该系统能够稳定可靠的运行和数据处理,通过设置有效性原则等操作,极大增强了系统的稳定性,从而有效避免错误的出现。系统在工作时正常表现,并且能够正确高效的处理各类信息的记录于管理。所以,本系统具有操作可行性。
在进行可行性研究时需要对现有的系统进行分析,并表达对系统的大致认识。由于在设计阶段之后,需要将事先构建的逻辑模型,通过一系列转变,形成物理模型,因此选取系统流程图作为对物理模型的描述,从而形象展现出数据在各系统模块之间的运作情况。
3.3系统UML用例分析
UML是 Unified Modeling Language的缩写,又称统一建模语言。是开发者对客观事物进行建模的标记,同时也是为开发者了解系统需要什么样的功能和整个流程是什么样的做的前期工作。云南美食食谱网站的UML用例分析详情如下图所示。
图3-1 管理员用例图
图3-2 用户用例图
3.4系统流程分析
系统流程分析是一种对系统进行详细研究的方法,在了解系统的运作方式和各个组成部分之间的关系方面进行深入分析。通过系统流程分析,可以更好地理解系统的工作原理,发现潜在的问题和改进点,并为优化系统设计和提高系统性能提供依据。系统流程分析是一种重要的工具,能够帮助我们更好地理解和管理复杂的信息系统。
3.4.1系统的流程图
根据不同用户划分出不同的功能得出云南美食食谱网站的流程图,如图3-3所示:
图3-3系统工作的流程图
3.4.2用户登录逻辑流程图
该平台对用户实行分级管理,用户分为两类:
(1)普通用户通过注册页面完成注册,输入个人信息。登录后进入后台管理系统,后台控制界面会显示该用户的个人信息。普通用户登陆后台后不允许针对系统的核心概况进行改动,如图3-4所示:
图3-4普通用户登录逻辑流程图
(2)系统管理员具有最高的管理权限。主要负责的任务是管理系统资源信息,针对系统内容做出调整,针对内容进行动态规划。针对普通用户进行权限的管理,以及添加或者删除普通用户的功能,如图3-5所示:
图3-5系统管理员登录逻辑流程图
第四章 系统设计
4.1系统功能模块设计
云南美食食谱网站在设计与实现时,采取了模块性的设计理念,把相似的系统的功能整合到一个模组中,以增强内部的功能,减少各组件之间的联系,从而达到减少相互影响的目的。系统总体功能结构图如图4-1所示。
图4-1 系统总体功能结构图
4.2 数据库设计
4.2.1数据库概念设计
数据库概念结构设计过程中,E-R图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。在系统中将对“用户、食材信息、美食论坛、订单信息、美食排行榜、公告信息”等作为实体,它们的局部E-R图,如图4-2所示:
图4-2局部E-R图
4.2.2 数据库表设计
本平台所采用的数据库是MySQL,数据库中包含数据库表和表之间的关系。该平台数据库设计采用的是关系型数据库表。表结构如下列各表所示。
表4-1:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 | ||
url | varchar | 500 | url |
表4-2:公告信息分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
typename | varchar | 200 | 分类名称 |
表4-3:关于我们
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
subtitle | varchar | 200 | 副标题 | ||
content | longtext | 4294967295 | 内容 | ||
picture1 | longtext | 4294967295 | 图片1 | ||
picture2 | longtext | 4294967295 | 图片2 | ||
picture3 | longtext | 4294967295 | 图片3 |
表4-4:公告信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
typename | varchar | 200 | 分类名称 | ||
name | varchar | 200 | 发布人 | ||
headportrait | longtext | 4294967295 | 头像 | ||
clicknum | int | 点击次数 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
storeupnum | int | 收藏数 | 0 | ||
picture | longtext | 4294967295 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-5:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
image | varchar | 200 | 头像 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-6: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 |
表4-7:系统简介
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
subtitle | varchar | 200 | 副标题 | ||
content | longtext | 4294967295 | 内容 | ||
picture1 | longtext | 4294967295 | 图片1 | ||
picture2 | longtext | 4294967295 | 图片2 | ||
picture3 | longtext | 4294967295 | 图片3 |
表4-8:美食论坛
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 帖子标题 | ||
content | longtext | 4294967295 | 帖子内容 | ||
parentid | bigint | 父节点id | |||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
avatarurl | longtext | 4294967295 | 头像 | ||
isdone | varchar | 200 | 状态 | ||
istop | int | 是否置顶 | 0 | ||
toptime | datetime | 置顶时间 |
表4-9:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 商品id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 名称 | ||
picture | longtext | 4294967295 | 图片 | ||
type | varchar | 200 | 类型 | 1 | |
inteltype | varchar | 200 | 推荐类型 | ||
remark | varchar | 200 | 备注 |
表4-10:食材信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
score | double | 评分 | |||
reply | longtext | 4294967295 | 回复内容 |
表4-11:美食信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-12:美食排行榜评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
score | double | 评分 | |||
reply | longtext | 4294967295 | 回复内容 |
表4-13:订单信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 订单编号 | ||
meishimingcheng | varchar | 200 | 美食名称 | ||
meishileixing | varchar | 200 | 美食类型 | ||
tupian | longtext | 4294967295 | 图片 | ||
jiage | double | 价格 | |||
shuliang | int | 数量 | |||
zongjiage | double | 总价格 | |||
zhuyaoshicai | varchar | 200 | 主要食材 | ||
xiadanshijian | datetime | 下单时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
yonghudianhua | varchar | 200 | 用户电话 | ||
ispay | varchar | 200 | 是否支付 | 未支付 |
表4-14:食材分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shicaifenlei | varchar | 200 | 食材分类 |
表4-15:制作方式
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhizuofangshi | varchar | 200 | 制作方式 |
表4-16:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
mima | varchar | 200 | 密码 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
xingbie | varchar | 200 | 性别 | ||
touxiang | longtext | 4294967295 | 头像 | ||
yonghudianhua | varchar | 200 | 用户电话 |
表4-17:美食信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
meishimingcheng | varchar | 200 | 美食名称 | ||
meishileixing | varchar | 200 | 美食类型 | ||
zhizuofangshi | varchar | 200 | 制作方式 | ||
tupian | longtext | 4294967295 | 图片 | ||
zhizuoshipin | longtext | 4294967295 | 制作视频 | ||
jiage | double | 价格 | |||
guige | varchar | 200 | 规格 | ||
zhuyaoshicai | varchar | 200 | 主要食材 | ||
meishixiangqing | longtext | 4294967295 | 美食详情 | ||
shiyongrenshu | varchar | 200 | 适用人数 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-18:美食排行榜
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
meishimingcheng | varchar | 200 | 美食名称 | ||
meishileixing | varchar | 200 | 美食类型 | ||
guige | varchar | 200 | 规格 | ||
zhizuofangshi | varchar | 200 | 制作方式 | ||
paiming | int | 排名 | |||
tupian | longtext | 4294967295 | 图片 | ||
zhizuoshipin | longtext | 4294967295 | 制作视频 | ||
zhuyaoshicai | varchar | 200 | 主要食材 | ||
meishixiangqing | longtext | 4294967295 | 美食详情 | ||
fabushijian | datetime | 发布时间 | |||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-19:美食类型
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
meishileixing | varchar | 200 | 美食类型 | ||
image | longtext | 4294967295 | 图片 |
表4-20:食材信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shicaimingcheng | varchar | 200 | 食材名称 | ||
shicaitupian | longtext | 4294967295 | 食材图片 | ||
shicaifenlei | varchar | 200 | 食材分类 | ||
shicaiyongtu | longtext | 4294967295 | 食材用途 | ||
zhizuofangshi | varchar | 200 | 制作方式 | ||
shicaijieshao | longtext | 4294967295 | 食材介绍 | ||
discussnum | int | 评论数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
第五章 系统实现
5.1前台功能实现
5.1.1首页页面功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过点击导航条上的美食信息、美食排行榜、食材信息、美食论坛、公告信息、个人中心等功能进入各详细页面进行操作。系统首页界面如图5-1所示:
图5-1 系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。如图5-2所示:
图5-2用户注册界面
美食信息:在美食信息页面输入美食名称进行查询美食详细信息,并进行下单、评论或收藏操作;如图5-3所示:
图5-3美食信息界面
食材:在食材页面通过输入食材名称进行查询食材详细信息,并进行评论或收藏操作;食材页面如图5-4所示:
图5-4食材详细页面
5.1.2个人中心页面实现
个人中心:在个人中心页面可以对个人中心、修改密码、订单信息、我的收藏、我的发布进行详细操作;如图5-5所示:
图5-5个人中心界面
5.2管理员模块实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-6所示。
图5-6管理员登录界面
管理员进入主页面,主要功能包括用户管理、美食类型管理、美食信息管理、订单信息管理、美食排行榜管理、制作方式管理、食材分类管理、食材信息管理、美食论坛、系统管理、我的信息等进行操作。管理员主页面如图5-7所示:
图5-7管理员主界面
美食类型功能在视图层(view层)进行交互,比如点击“查询信息、新增或删除”按钮或填写美食类型表单。这些美食类型表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更改或移除美食类型信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便美食类型功能可以看到最新的信息或相应的操作反馈。如图5-8所示:
图5-8美食类型管理界面
美食信息功能在视图层(view层)进行交互,比如点击“查询信息、新增或删除”按钮或填写美食信息表单。这些美食信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、发布排行、更改、查看评论或移除美食信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便美食信息功能可以看到最新的信息或相应的操作反馈。如图5-9所示:
图5-9美食信息管理界面
美食排行榜功能在视图层(view层)进行交互,比如点击“查询信息或删除”按钮或填写美食排行榜表单。这些美食排行榜表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更改、查看评论或移除美食排行榜信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便美食排行榜功能可以看到最新的信息或相应的操作反馈。如图5-10所示:
图5-10美食排行榜管理界面
食材信息功能在视图层(view层)进行交互,比如点击“查询信息、新增或删除”按钮或填写食材信息表单。这些食材信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更改、查看评论或移除食材信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便食材信息功能可以看到最新的信息或相应的操作反馈。如图5-11所示:
图5-11食材信息界面
美食论坛功能在视图层(view层)进行交互,比如点击“查询信息、新增或删除”按钮或填写美食论坛表单。这些美食论坛表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如详情、更改、查看评论或移除美食论坛信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便美食论坛功能可以看到最新的信息或相应的操作反馈。如图5-12所示:
图5-12美食论坛界面
第六章 系统测试
6.1测试目的
云南美食食谱网站的测试是为了使功能满足不同级别用户的需求,主要的目标是找到项目中可能存在的漏洞。但是,测试仅仅是一个完善系统可行性功能的过程,绝不能够证明程序是完全正确的。所以在后续的部署上线的使用过程中,可以不断针对系统可能出现的问题做出测试,发现还未被发现的问题。
6.2测试方法
测试方法主要包括两种方式:
黑盒测试:注重测试产品的功能测试、产品的数据规格测试。测试案例是应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。
白盒测试:注重测试产品结构、产品的逻辑驱动测试。测试者了解待测试程序的内部结构、算法等信息,这是从程序设计者角度对程序进行的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。针对云南美食食谱网站功能特性,本次测试采用的是黑盒测试。
6.3系统测试用例
6.3.1系统登录模块的测试
模块名称 | 登录模块 | ||
测试环境 | 操作系统 浏览器 | ||
条件设置 | 无 | ||
步骤序号 | 具体描述 | 输入数据 | 预期效果 |
1 | 在注册界面,不输任何信息、选择登录按钮 | 不能登录,出现提示:用户名不能为空; | |
2 | 输入错误的用户名或密码 | 用户名为12 密码为12 | 提示(用户名错误) |
3 | 输入正确的用户名和密码 | 用户名:12 密码:ckmputer | 显示登录成功,并跳转到首页 |
4 | 点击注册按钮 | 直接跳转到注册界面 | |
5 | 必填信息:选项遗漏 | 用户名:12 密码:123456 确认密码:123456 E-mail:未填 | 提示信息未填写完整,无法完成注册 |
6 | 选填信息:选择遗漏 | 用户名:12 密码:123456 确认密码:123456 E-mail:[email protected] | 提示注册成功 |
7 | 注册用户重复 | 用户名:12级计算机 | 提示该用户名已经被注册 |
8 | 注册使用密码超过16位 | 用户名:12 密码: 123456789123456789 | 提示密码超过规定的16位 |
9 | 注册时确认密码和原始密码不同 | 用户名:12 密码:123456 确认密码:654321 | 提示两次密码不一致,请重新输入 |
10 | 普通用户登录 | 用户名:小明 密码:123456 | 进入普通用户界面 |
11 | 管理员登录 | 用户名:admin 密码:admin | 进入管理员界面 |
图6-1 平台登录模块的测试图
6.3.2用户中心模块的测试
模块名称 | 用户中心模块 | ||
测试环境 | 操作系统 浏览器 | ||
条件设置 | 未登录 | ||
步骤序号 | 具体描述 | 输入数据 | 预期效果 |
1 | 选择查看用户资料 | 提示无法查看,请登录 | |
2 | 普通用户登录 | 用户名:小明 密码:xiaoming | 登录成功 |
3 | 选择查看我的资料 | 成功进入用户资料页面 | |
4 | 选择修改资料,修改邮箱地址 | 邮箱信息 | 用户资料显示小明邮箱信息 |
5 | 选择查看用户权限 | 用户名:12 密码:123456 确认密码:123456 E-mail:未填 | 成功跳转到用户权限界面 |
6 | 选择退出 | 用户名:12 密码:123456 确认密码:123456 E-mail:[email protected] | 成功退出登录 |
图6-2 用户中心模块的测试图
6.3.3用户管理模块的测试
模块名称 | 用户管理模块 | ||
测试环境 | 操作系统 浏览器 | ||
条件设置 | 网站管理员已经登陆 | ||
步骤序号 | 具体描述 | 输入数据 | 预期效果 |
1 | 选择删除 | 用户名:小明 | 成功删除,登录界面使用(小明)登录,显示该用户名不存在 |
2 | 选择创建用户 | 用户名:小李 | 创建成功,登录使用(小李)登录,显示登录成功 |
3 | 选择修改用户资料,修改用户名为(小李)的邮箱地址 | 用户名:小李 | 显示用户(小明)及其邮箱地址 |
4 | 选择修改用户密码,将用户(小李)密码由(123)改为(123456) | 用户名:小李 新密码:123456 | 用户(小李)使用密码:123,无法登录,使用新密码:123456 显示登录成功 |
图6-3 用户管理模块的测试图
结论
根据云南美食食谱网站的要求,通过对springboot开发框架的应用,从试运行效果来看,该系统的功能基本上达到了预期的设计要求。通过此云南美食食谱网站,可以便捷的查看到关注的用户信息。在本系统的开发过程中,我重点研究了对用户分级权限的考虑,由于考虑到不同的用户在使用本系统的时候,需要呈现不同的用户界面和用户级别。所以通过划分不同的用户级别,把本系统用户划分为管理员和用户。整体提高系统的安全级别和用户实用性。
此外,要使系统功能更加完善,还应该提供配备一些子系统功能,其次,该系统通用性不是很强,如果把该系统应用到其他地方,还需要重新配置服务。针对以上出现的问题,今后还需要深入研究和完善的有以下三点:
1、本系统设计没有考虑到用户跨设备访问所带来的数据存储问题
2、在某些功能板块处理问题上,出现了功能不完善还需要继续改进设计思路。
3、对与系统上的数据并没有备份操作,冗余备份能力不够。系统应该根据不同的适用性,完善系统整体性能。
[1]邓阳名,顾潇,梁爱媚.基于Java语言的数据库访问技术应用研究[J].中国新通信,2023,25(08):83-85.
[2]徐海燕.JAVA编程在计算机应用软件中的应用特征与技术[J].电子技术与软件工程,2023(03):29-32.
[3]任浩然,刘丹,景永强.JAVA在计算机软件开发中的应用研究[J].信息记录材料,2022,23(11):83-85.
[4]王志辉.浅析计算机软件JAVA编程的特点及应用[J].软件,2020,41(01):266-269.
[5]熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2022,15(36):76-77.
[6] 单树倩,任佳勋.基于SpringBoot和Vue框架的数据库原理网站设计与实现[J].电脑知识与技术.2021,17(30).
[7]邱小群,邓丽艳,陈海潮.基于B/S的信息管理系统设计和实现[J].信息与电脑(理论版),2022,34(20):146-148.
[8]郑戟明,董云朝,柳青.MySQL数据库数据导入导出方法的探讨[J].电脑知识与技术,2022,18(22):24-25.
[9]焦宇,李民,王欢,余开朝.基于MySQL性能调优的推荐系统优化设计[J].软件导刊,2022,21(09):108-112.
[10]吴锋珍.基于主从同步的MySQL负载均衡设计与部署[J].湖南邮电职业技术学院学报,2022,21(02):40-43.
[11]Camelia Muñoz-Caro, Alfonso Niño, Sebastián Reyes, Miriam Castillo. APINetworks Java. A Java approach to the efficient treatment of large-scale complex networks [J]. Computer Physics Communications, 2018: 207-218.
[12]Simone Hanazumi, Ana C.V. de Melo. A Formal Approach to implement java exceptions in cooperative systems [J]. The Journal of Systems & Software, 2018: 200-268.
毕业设计是我在大学中完成的重要的一次任务,通过这几个月的努力学习,终于要画上了圆满的句号。随着毕设的结束,也即意味着我即将离开这个陪伴了我四年时间的母校。
首先,我要十分感谢我的导师,她是一位十分负责,知识全面,具有创新性想法的老师。从我确认选题开始,老师就帮助我细致的分析了我在完成毕业设计的过程中可能完成的问题。并对这些问题做出了自己的判断及建议,这些判断和建议帮助我能够顺利完成毕业设计。通过她的帮助,我的选题才更加的立意深远具有研究价值。也是在她的适时督促才使我在完成毕业设计的过程中,有条不紊、按部就班,在规定的时间内完成相应的任务。再次我要真诚的对老师说一声:“谢谢”!
其次,我要感谢我的父母,感谢父母对我无私的帮助。在当时选择高考志愿的时候,是他们的建议坚定了我选择了现在的母校。我在母校的四年时间,学习到的不仅仅是课本实践中所获得的知识,更多的有做人处事的道理。而这些都离不开我父母的支持。也是他们的无私奉献,才使得我能在这四年的学习生活中不断进步,更好的适应于即将面对的社会环境,让我明白自己的人生理想,坚定自己的价值追求。
同时,我还要感谢四年以来和我一起生活学习的同学和各科任课老师。在四年的学习生活中,同学的帮助,老师的谆谆教诲使得我感受到了家的温暖。感谢各科老师的教育,没有他们在课上的认真授课,我是不可能具备完成毕业设计的知识基础的。也是由于他们的教学教育,使得我能够不仅完成知识技能的提高,还更好的帮助我后续的工作学习。
最后,感谢母校能够提供一个非常好的学习环境能够让我们踏实奋斗,努力学习先进的知识文化。在学习中丰富自我,在实践中完善自我。