基于springboot+vue的食疗系统
基于springboot+vue的食疗系统
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
现在所处的社会以《和平与发展》作为一个时代发展的主题,科学技术作为第一生产力,在如今经济飞速发展的当下,人们的生活质量水平不断的提高了,不在以“吃饱穿暖”为主体了,越来越注重生活质量与精神文化的提升,伴随着生活节奏的加快,愈来愈多的人开始关注健康生活,提升自己的身体健康。
虽然愈来愈多的人开始关注自己的健康,也去改善自己的身体,但是根据2020年一项数据调查显示,在我国中亚健康的人数占比依旧是高达了国内人数的76%,而真正意义上健康的人数所占比例则不足3%。通过数据来看人群健康状况并不是很乐观,而且需要一个很大的改善。
在我们的身体中,拿体重这一项我们日常生活中比较在意的进行数据对比,我们可以发现以下重要信息:由《中国居民营养与慢性病状况报告(2020年)》中所展示出的新数据,我们就可以得出以下的结论,目前而言我国的成人中已经有超过1/2的人超重或肥胖,在成年居民(≥18岁)中超重率为34.3%、肥胖率为16.4%。此次也是全国性调查报告中首次出现超过1/2这样一个数字。同时在6-17岁儿童和青少年中有1/5(19%)和6岁以下儿童1/10(10.4%)都存在超重或肥胖。如果用人口数量来表示数据库,则通过人口数来计算,全国已经有6亿人超重和肥胖,这个数字在全球是第一位。很显然肥胖这一问题值得引起我们的重视。引起肥胖的原因有很多,其中最常见最直接的原因是跟我们吃的食物有关。目前人们对食物的要求越来越高,虽然肥胖等体重问题对于我们来说似乎并没有其他如:心血管、糖尿病等疾病那么严重,但是肥胖会引发诸如心血管疾病、糖尿病、脂肪肝等一系列疾病,而且是慢慢的改变身体机能,一般而言是很难察觉。而对于肥胖这一问题主要可以通过锻炼、控制饮食、调整作息等方式来改善。食疗这一理论则是通过饮食来调节我们的机能,所以我认为食疗系统的开发与设计是有利于健康和发展的、是具有需求的一个课题研究。
二、项目技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。 - Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
- SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
- Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
- Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。
三、系统功能模块介绍:

四、数据库设计:
1:‘管理员表’(admin)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| user_name | varchar | NULL | 用户名 |
| head_img | varchar | NULL | 头像 |
| pass_word | varchar | NULL | 密码 |
| nick_name | varchar | NULL | 昵称 |
2:‘食材表’(foods)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| food_name | varchar | NULL | 食材名称 |
| food_type | bigint | NULL | 食材分类 |
| food_fun | text | NULL | 主治功能 |
| taboo | text | NULL | 禁忌食物 |
| big_img | varchar | NULL | 封面图片 |
| foods_imgs | text | NULL | 轮播图数组 |
3:‘食材分类’(goods_type)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| type_name | varchar | NULL | 类型名称 |
4:‘留言管理’(medical_records)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| user_id | bigint | NULL | 用户ID |
| performance | text | NULL | 常规表现 |
| recommended | varchar | NULL | 推荐方案 |
| varchar | NULL | 邮箱 |
5:‘体质分类表’(physical_type)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| physical_name | varchar | NULL | 体质分类名称 |
6:‘体质表’(physicals)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| physicals_name | varchar | NULL | 体质名称 |
| type_id | bigint | NULL | 所属类型 |
| performance | text | NULL | 常规表现 |
| feature | text | NULL | 形体特征 |
| tendencys | text | NULL | 发病倾向 |
| ability | text | NULL | 适应能力 |
| health_key | text | NULL | 养生关键 |
| taboo | text | NULL | 食物性宜忌 |
| big_img | varchar | NULL | 介绍图片 |
7:‘食谱表’(recipe)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| recipe_name | varchar | NULL | 食谱名称 |
| recipe_type | bigint | NULL | 食谱分类 |
| recipe_content | text | NULL | 食谱搭配 |
| attend_fun | text | NULL | 主治疾病 |
| taboo | text | NULL | 饮食禁忌 |
| big_img | varchar | NULL | 封面图片 |
8:‘食谱分类表’(recipe_type)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| recipe_type | varchar | NULL | 食谱类别 |
9:‘用户表’(users)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | bigint | NULL | 主键ID |
| user_name | varchar | NULL | 用户名 |
| sex | int | NULL | |
| pass_word | varchar | NULL | 密码 |
| name | varchar | NULL | 姓名 |
| age | int | NULL | 年龄 |
| adapt | varchar | NULL | 适应能力 |
| history | varchar | NULL | 既往史 |
| now_medical | varchar | NULL | 现病史 |
| allergy | varchar | NULL | 过敏史 |
| create_time | datetime | NULL | 创建时间 |
五、功能模块:
-
用户登录模块:首先用户需要进行登录操作来进入系统后才能再进行后续的一些功能体验。在用户系统界面可以点击右上角的登录按钮跳转登录界面输入正确的相关用户信息便可等级食疗系统进行功能体验,如果该用户没有注册,则可以点击注册按钮进行用户信息注册。在登录这一重要的模块中,系统会将用户输入的信息与系统数据库进行检查,MySQL数据库会运行SQL语句并将信与已存储在数据库中的数据进行检索,确保系统安全和稳定。

-
用户首页模块:在用户登录步骤完成之后并且成功进入食疗系统,食疗系统会展示首页信息,同时用户可以根据自己的需求进行食材、食谱、体质等功能体验。用户首先重要的是需要把自己的体质信息进行记录,这样食疗系统可以根据不同的体质情况进行数据处理。用户可以点击首页的体质按钮进入体质信息模块。

-
用户体质信息模块:在此食疗系统中,用户的体质信息是系统中重要的一个项目,用户可以在首页点击体质按钮进入体质页面把用户自己的一些体质相关信息对应食疗系统的提示进行输入,让食疗系统存储用户的体质信。体质信息中一些如:所属分类、形体特征、发病趋势等可以直观表示用户当前身体状况,让用户可以直接了解自己的身体健康情况。而在体质信息中的养生关键和食物性宜忌则可以为用户提供体质改善的建议,让用户能够提高自己的身体质量。在体质信息这一模块中,用户可以简单易读的直观了解到用户的体质信息,此页面可以让用户可以快速上手,提高用户使用体验。

-
食材信息模块:在食疗系统中用户可以在首页点击食材按钮跳转对应的食材信息模块,在此模块中用户可以直观感受到相应食材的作用、所属分类、主治功能、禁忌情况。

-
食谱信息模块:在食疗系统中用户可以在首页点击食谱按钮跳转对应的食材信息模块,在此模块中用户可以直观感受到相应食材的作用、所属分类、食谱搭配、主治功能、禁忌情况。

六、代码示例:
用户登录模块
@RequestMapping(value = "/registerSave")public ResponseEntity<String> mineSave(Model model,HttpServletRequest request,Long id,String username,String password,String customerName,String sex,String address,String mobile) throws Exception{int result = 0;String sql="insert into t_customer(username,password,customerName,sex,address,mobile) values(?,?,?,?,?,?)";result = db.update(sql, new Object[]{username,password,customerName,sex,address,mobile});sql="select * from t_customer order by id desc limit 1";List<Map> list = db.queryForList(sql);request.getSession().setMaxInactiveInterval(60*60*24);request.getSession().setAttribute("customerBean", list.get(0));return renderData(true,"操作成功",null);}
用户首页模块
public ResponseEntity<String> loginSave(Model model,HttpServletRequest request,String username,String password) throws Exception {String sql="select * from t_customer where username=?";List<Map> list = db.queryForList(sql, new Object[]{username});String result="1";if(list!=null&&list.size()>0){Map map = list.get(0);if(StringHelper.get(map, "password").equals(password)){request.getSession().setMaxInactiveInterval(60*60*24);request.getSession().setAttribute("customerBean", map);result="1";}else{result="0";}}else{result="0";}return rende
用户体质信息模块
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{return AjaxResult.success(tGrugsService.selectTGrugsById(id));
}
食材信息模块
@RequestMapping(value = "/myOrder")public String myOrder(Model model, HttpServletRequest request)throws Exception {String sql = "select a.*,(select max(customerName) from t_customer b where a.customerId=b.id) customerName from t_order a where 1=1 ";if (1 == 1) {sql += "and customerId=" + getCustomer(request).get("id") + " ";}sql += " order by id desc";List list = db.queryForList(sql);request.setAttribute("orderList", list);return "/front/myOrder";}
食谱信息模块
@GetMapping("/list")
public TableDataInfo list(SysNotice notice)
{startPage();List<SysNotice> list = noticeService.selectNoticeList(notice);return getDataTable(list);
}
七、论文参考:
论文参考···
八、项目总结:
通过这段时间的设计和开发,食疗系统是完成了,在此我非常感谢老师的指导和同学的帮助,让我可以在在这几个月把自己的食疗系统开发完成。在这份文档中展示了食疗系统的部分关键功能模块和一些食疗系统在设计与开发时候的内容。此食疗系统的用户系统为用户提供了用户所属账号注册以及登录功能、本系统所包含的食材信息、食谱信息、以及用户体质记录和对应体质的食谱推荐,为用户的身体健康提供帮助。在本食疗系统的管理系统则为管理员提供了用户的体制分类管理、食谱分类管理、食材管理、食谱信息管理、食品分类管理、体质信息管理、留言管理、用户信息管理这些功能。这些功能为用户和管理员对食疗系统的功能体验和运作提供了有效作用。
在设计和开发食疗系统时,因为本人是首次个人制作此类系统项目,在很多方面还是存在不足之处。在系统开发时,系统开发编码的情况不容乐观,很多编码逻辑还是存在很大的问题,编写的代码存在逻辑混乱,这对于系统的开发是非常严重的,在以后我会改善自己的编码思维,确保编码逻辑顺通。对于用户系统的界面设计之初还是缺乏简洁的美观思维,没有去深入考虑用户的观念,系统的界面不够美观,让系统界面的美观并不讨喜,系统界面是直接与用户进行交互的,应该设计美观,让用户喜欢,提高用户的使用体验。
完成此次食疗系统后在,让我知道了想要开发一个好的系统、一个有用户粘性的系统并不简单,做好系统开发之初的需求分析、一个符合用户审美的系统设计、一个安全稳定的数据库等这些都是不能粗制滥造的。我想通过这次食疗系统的设计与开发可以让我积累更多的专业知识,让自己的实践能力更强。
九、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接
相关文章:
基于springboot+vue的食疗系统
基于springbootvue的食疗系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍&…...
sklearn学习-朴素贝叶斯
文章目录一、概述1、真正的概率分类器2、sklearn中的朴素贝叶斯二、不同分布下的贝叶斯1、高斯朴素贝叶斯GaussianNB2、探索贝叶斯:高斯朴素贝叶斯擅长的数据集3、探索贝叶斯:高斯朴素贝叶斯的拟合效果与运算速度总结一、概述 1、真正的概率分类器 算法…...
分享112个HTML艺术时尚模板,总有一款适合您
分享112个HTML艺术时尚模板,总有一款适合您 112个HTML艺术时尚模板下载链接:https://pan.baidu.com/s/1D3-mfPOud-f3vy9yLl-bmw?pwdfph2 提取码:fph2 Python采集代码下载链接:采集代码.zip - 蓝奏云 时尚平面模特网站模板 潮…...
用GDB远程调试运行于QEMU的程序
1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 测试环境 本文使用 Ubuntu 16.04.4 LTS QEMU 环境进行调试。 3. 用 GDB 调试 QEMU 内程序 3.1 编写用来调试的程序 我们用 ARM32 来进行调试…...
20 堆排序
文章目录1 堆排序的概念2 堆排序基本思想3 堆排序步骤图解说明4 堆排序的代码实现1 堆排序的概念 1) 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn)…...
2023最新文件快递柜系统网站源码 | 匿名口令分享 | 临时文件分享
内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 2023最新文件快递柜系统网站源码 | 匿名口令分享 | 临时文件分享 很多时候,我们都想将一些文件或文本传送给别人,或者跨端传递一些信息,但是我们又不…...
分片策略(二)
分片策略 基本概念 分片键 用于分片的字段,是将数据库或表拆分的字段,比如,我可以使用user_id作为分片键将用户数据分到不同的表中,这里的user_id就是分片键,除了这种单字段分片,ShardingSphere还支持多…...
Qt之调色板类QPalette的使用
文章目录QPalette调色板类前言代码知识点讲解QPalette调色板类 前言 Qt提供的调色板类QPalette专门用于管理部件的外观显示,相当于部件或对话框的调色板,管理他们所有的颜色信息。每个部件都包含一个QPalette对象,在显示时,按照…...
Kotlin 32. Kotlin 多语言支持
Kotlin 多语言支持 对于 Kotlin 来说,当我们新建一个项目时,会默认在 values/ 文件夹下,生成一个 strings.xml 文件。比如说, <resources><string name"app_name">exampleNewProject</string> <…...
【Flutter入门到进阶】Dart进阶篇---DartVM单线程设计原理
1 虚拟机的指令执行设计 1.1 虚拟机的分类 基于栈的虚拟机,比如JVM虚拟机 基于寄存器的虚拟机,比如Dalvik虚拟机 1.2 虚拟机的概念 首先问一个基本的问题,作为一个虚拟机,它最基本的要实现哪些功能? 他应该能够模拟…...
Dem和NvM(NVRAM Manager)的交集
NVRAM(NvM)提供了在NVRAM中存储数据Block的机制。 NVRAM Block(最大大小取决于配置)被分配给Dem,并由Dem实现事件状态信息和相关数据的永久存储(例如通电复位)。 ECU 状态管理器(Ec…...
AI神经网络CNN/RNN/DNN/SNN的区别对比
@版权声明: 本文由 ChatGpt 创作; BiliBili: https://www.bilibili.com/video/BV17D4y1P7pM/?share_source=copy_web&vd_source=6d217e0ff6387a749dc570aba51d36fd 引言 随着人工智能技术的发展,神经网络作为人工智能的核心技术之一,被广泛应用于图像识别、语音识别、…...
【JavaWeb】一文学会JPA
✅✅作者主页:🔗孙不坚1208的博客 🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中) 📋📋 本文摘要:本篇文章主要介绍JPA的概念、注解实现ORM规范…...
【安卓逆向】APK修改与反编译回编译
【安卓逆向】反编译修改APK回编译使用工具流程步骤Apktool相关安装与使用常用命令备查APK签名命令备查实战练习反编译查看修改的地方使用Apktool反编译得到产物文件夹并进行修改回编APK实用场景在日常开发我们可能需要替换某些资源或者修改某些代码,但是我们没有源码…...
【计组笔记04】计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射
这篇文章,主要介绍计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射。 目录 一、双口RAM和多模块存储器 1.1、存取周期 1.2、双口RAM 1.3、多模块存储器...
英语基础-状语的应用
1. 非谓语动词作状语 1. 试着翻译下列句子 当他是一个小孩子的时候,他很喜欢玩电脑游戏。 When he was a child, he liked playing computer games. 如果他通过考试,他妈妈就会给他买一台新电脑。 If he passes the examination, his mother will b…...
发表论文需要注意的两点(建议收藏)
在学习人工智能的过程中,论文有着重要的作用,无论是深入学术科研,还是毕业找工作,都离不开发表论文这一步骤,所以今天就和大家分享一些关于论文发表的经验,希望对大家有所帮助。 为什么要早点发表论文&…...
ISTQB-TM-大纲
1. 测试过程 1.1 简介 在 ISTQB 软件测试基础级认证大纲中已描述了基本的测试过程包括以下活动: 计划和控制分析和设计实施和执行评估出口准则和报告测试结束活动 基础级大纲认同这些活动虽然有逻辑顺序,但过程中的某些活动可能重叠,或并行…...
Java SPI 机制详解
在面向对象的设计原则中,一般推荐模块之间基于接口编程,通常情况下调用方模块是不会感知到被调用方模块的内部具体实现。一旦代码里面涉及具体实现类,就违反了开闭原则。如果需要替换一种实现,就需要修改代码。 为了实现在模块装…...
腾讯前端经典react面试题(附答案)
React 性能优化在哪个生命周期?它优化的原理是什么? react的父级组件的render函数重新渲染会引起子组件的render方法的重新渲染。但是,有的时候子组件的接受父组件的数据没有变动。子组件render的执行会影响性能,这时就可以使用s…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
