摘  要

随着数字技术的快速发展和互联网的普及,越来越多的家庭对在线食谱管理和烹饪分享的需求不断增加。传统的食谱管理方式通常依赖纸质食谱或者分散的在线信息,用户难以方便地查找和管理食谱,且缺乏互动与个性化体验。基于此背景,本文提出了一种采用SSM(Spring, Spring MVC, MyBatis)框架构建的家庭食谱管理系统。该系统旨在通过集成先进的技术手段,提供注册登录、食谱信息浏览、食谱收藏、评论、个性化推荐等便捷功能,满足现代家庭对高效、便捷且个性化的食谱管理需求。系统分为普通用户和管理员两大模块。普通用户可以通过注册登录后查看、收藏和评论食谱,同时管理个人信息和食谱记录;管理员则可管理食谱信息、用户账号、公告通知等内容,确保系统高效运行并提升管理效率。整体上,该系统提升了家庭食谱管理的便利性,同时增强了用户体验和服务质量。

关键词:家庭食谱管理系统;SSM;

Abstract

With the rapid development of digital technology and the popularity of the Internet, more and more families have an increasing demand for online recipe management and cooking sharing. Traditional recipe management methods often rely on paper recipes or scattered online information, making it difficult for users to easily find and manage recipes, and lacking interaction and personalized experience. Based on this background, this article proposes a home recipe management system built using the SSM (Spring, Spring MVC, MyBatis) framework. The system aims to provide convenient functions such as registration and login, recipe information browsing, recipe collection, comments, personalized recommendations, etc. by integrating advanced technological means, to meet the efficient, convenient, and personalized recipe management needs of modern families. The system is divided into two main modules: regular users and administrators. Ordinary users can view, bookmark, and comment on recipes by registering and logging in, while managing personal information and recipe records; Administrators can manage recipe information, user accounts, announcement notifications, and other content to ensure efficient system operation and improve management efficiency. Overall, the system has improved the convenience of home recipe management, while enhancing user experience and service quality.

Keywords: family recipe management system; SSM;

目  录

1 绪  论

1.1 研究背景

1.2 研究意义

1.3 研究现状

1.3.1 国内研究现状

1.3.2 国外研究现状

1.4 论文结构与章节安排

2 关键技术

2.1 Java语言

2.2 MySQL数据库

2.3 SSM框架

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.1.4 市场可行性

3.2 系统需求分析

3.2.1 功能性需求分析

3.2.2 非功能性需求分析

3.3 系统流程分析

3.3.1 程序操作流程

3.3.2 登录流程

3.3.3 注册流程

3.4 本章小结

4 系统设计

4.1 系统架构设计

4.2 系统功能模块设计

4.2.1 系统整体功能模块设计

4.2.2 系统用户模块设计

4.3 数据库设计

4.3.1 E-R图

4.3.2 数据库表结构设计

4.4 本章小结

5 系统实现

5.1 普通用户功能实现

5.1.1 用户注册界面

5.1.2 用户登录界面

5.1.3 首页界面

5.1.4 公告通知界面

5.1.5 新闻资讯界面

5.1.6 食谱信息界面

5.1.7 个人中心界面

5.2 管理员功能实现

5.2.1 系统用户界面

5.2.2 食谱类型管理界面

5.2.3 食谱信息管理界面

5.2.4 系统管理界面

5.2.5 公告通知管理界面

5.2.6 资源管理界面

6 系统测试

6.1 系统测试目标

6.2 系统功能测试

6.3 测试结果总结

7总结

参考文献

致  谢

 

1    

1.1研究背景

随着生活水平的提高和互联网技术的普及,现代家庭对于饮食健康和烹饪技能的关注逐渐增加。传统的食谱管理方式通常依赖纸质食谱、杂志或简单的电子文档,缺乏系统性和个性化,难以满足不同家庭和用户的需求。此外,随着快节奏的生活方式,很多家庭对方便、快速、健康的食谱信息的获取和管理有着强烈需求。尤其是在年轻一代的用户中,智能设备和在线平台已成为日常生活的一部分,他们更倾向于使用数字化工具来管理自己的饮食和烹饪习惯。因此,开发一款基于数字平台的家庭食谱管理系统,可以帮助用户更高效地获取食谱信息、进行个性化管理,并促进健康饮食习惯的形成。通过集成SSM框架,该系统能够为用户提供便捷的操作体验和高效的食谱管理服务,满足家庭烹饪的多样化需求,并提升用户的生活质量。

1.2研究意义

本研究的意义在于通过构建一个基于SSM框架的家庭食谱管理系统,解决了传统食谱管理方式中的诸多问题,如信息分散、管理不便和缺乏个性化服务。随着现代社会生活节奏的加快,传统的纸质食谱和不系统的食谱信息已无法满足用户日益增长的需求。通过该系统,用户可以方便地查询、收藏和管理食谱,获取个性化推荐,极大提高了烹饪效率和饮食质量。此外,系统提供的美食论坛和用户评论功能,促进了用户间的互动和知识共享,增强了社区氛围。

从社会意义来看,推广数字化食谱管理系统可以帮助家庭更好地规划饮食,减少不健康饮食习惯,推动健康饮食文化的发展。对于系统开发者来说,本课题的研究不仅丰富了SSM框架在实际应用中的探索,也为开发类似领域的系统提供了参考,具有较高的技术和应用价值。

1.3研究现状

1.3.1国内研究现状

近年来,随着互联网技术的发展,国内的家庭食谱管理系统逐渐受到关注,尤其是在移动互联网和智能设备普及的背景下,越来越多的数字化烹饪平台应运而生。目前,国内已有一些食谱管理应用,如“下厨房”、“美食杰”等,这些平台提供了丰富的食谱库、用户评论和个性化推荐功能,旨在为用户提供便捷的烹饪指导。然而,这些系统大多集中在食谱内容展示和用户交流上,缺乏系统性的数据管理和精确的个性化推荐功能,用户体验和系统效率方面仍有改进空间。

与此同时,基于SSM框架的食谱管理系统的研究较为稀缺,虽然在一些电商平台和餐饮管理系统中有使用SSM框架的案例,但针对家庭食谱管理的专门研究较少。因此,构建一个以用户为中心的家庭食谱管理系统,利用SSM框架实现高效的数据管理和个性化推荐,将有助于填补国内相关领域的研究空白,并推动数字化家庭烹饪管理的进步。

1.3.2国外研究现状

在国外,随着智能家居和物联网技术的发展,数字化食谱管理系统已逐渐成为家庭烹饪的辅助工具。平台如“Yummly”、“AllRecipes”和“Epicurious”等提供了强大的食谱数据库,结合智能推荐算法,根据用户的饮食偏好、健康需求和过往浏览记录,推送个性化的食谱建议。这些平台通常具有食谱搜索、收藏、评论、购物清单生成等功能,极大提高了用户的烹饪效率和饮食质量。

此外,一些系统还与智能厨房设备进行集成,如智能烤箱、冰箱等,自动调整烹饪设置,提升烹饪精度和便捷性。然而,尽管国外在智能食谱管理方面取得了一定进展,但仍存在用户隐私保护、个性化推荐精准度、跨平台整合等挑战。与国内市场相比,国外的食谱管理系统更多集中在跨设备和智能化应用层面,而国内在这方面的应用研究和实践仍有待深入。因此,结合SSM框架进行家庭食谱管理系统的研究,具有较高的技术和市场潜力。

1.4论文结构与章节安排

本文共分为七章,章节内容安排如下:

第一章:绪论,主要介绍基于ssm家庭食谱管理系统领域研究的背景和意义,概述研究的现状。

第二章:关键技术,主要探讨和说明实现基于ssm家庭食谱管理系统的关键技术。

第三章:系统分析,主要从基于ssm家庭食谱管理系统的可行性、功能性需求、非功能性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对基于ssm家庭食谱管理系统功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了基于ssm家庭食谱管理系统各个用户的功能、系统界面的实现。

第六章:系统测试,主要对基于ssm家庭食谱管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:总结。主要对系统的开发设计工作进行总结。

2  关键技术

2.1Java语言

早在上个世纪90年代,Java就由詹姆斯·高斯林进行开发,自诞生之日起,Java就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今[1]。Java语言是真的是一种纯面向对象的计算机语言,在Java的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Java中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多[2]。Java另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程[3]。如今,随着编程思想的继续发展,Java也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本系统采用Java编程语言进行后台的开发,一是鉴于标准化制定以后,Java语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Java代码的能力[4]。

2.2MySQL数据库

MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在基于ssm家庭食谱管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持[5]。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。

2.3SSM框架

SSM框架是Java Web开发中的一种轻量级框架组合,包括Spring、SpringMVC和MyBatis三个核心组件。其中,Spring是一个开源的Java平台,提供了一套全面的技术方案,用于构建企业级应用程序;SpringMVC是Spring的一个模块,用于构建Web应用程序;MyBatis是一个优秀的持久层框架,支持自定义SQL、映射和事务管理。SSM框架组件详解:                                                                                                                   

Spring:

Spring框架的核心功能是依赖注入(DI)和面向切面编程(AOP)。依赖注入是通过配置文件或注解的方式,将应用程序中的对象及其依赖关系定义好,然后由Spring容器来创建和管理这些对象。面向切面编程则是通过预定义的切面(如事务管理、日志记录等)来增强应用程序的功能,而无需修改源代码。

SpringMVC

SpringMVC是一个基于Java的Web应用程序框架,它将URL请求与处理器(Handler)进行映射,并处理HTTP请求。SpringMVC采用了MVC(Model-View-Controller)设计模式,将业务逻辑、数据展示和用户交互分离,有助于降低模块之间的耦合度[6]。

MyBatis

MyBatis是一个持久层框架,它支持自定义SQL、映射和事务管理,可以将Java对象与数据库记录之间建立关联。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,可以让开发者专注于SQL本身,提高了开发效率[7]。

3  系统分析

系统分析是对系统开发的可行性进行研究,分析功能需求以确保系统满足用户期望。系统用例设计将明确定义系统与外部用户的交互场景,系统流程规划则细化系统内部功能流程,确保系统各模块协调工作。通过系统分析,可以建立清晰的系统框架,明确系统目标和功能,为系统开发和实施奠定基础。

3.1可行性分析

3.1.1技术可行性

SSM是一种常用的Java Web开发框架,它将Spring的loC容器、SpringMVC的模型-视图-控制器模式和MyBatis的ORM映射功能相结合,提供了强大的Web应用程序开发能力。目前,SSM框架已经非常成熟,有大量的成功案例和社区支持,可以快速构建稳定、高效、可扩展的Web应用程序。因此,从技术层面分析是可行的。

3.1.2经济可行性

SSM框架是开源的,拥有大量的社区支持和丰富的学习资源。使用SSM框架进行开发可以降低开发成本,缩短开发周期。此外,SSM框架具备良好的性能和稳定性,可以降低系统的运行成本和维护成本。因此,从经济层面分析是可行的。

3.1.3操作可行性

SSM框架具有良好的可维护性和可扩展性,便于后期的维护和升级。此外,采用Web方式进行管理,用户界面友好,操作简便,可以满足不同用户的需求。因此,从操作层面来说是可行的。

3.2系统需求分析

3.2.1功能性需求分析

本系统分为普通用户和管理员这两大用户模块,各用户模块的具体功能说明如下:

(1)普通用户功能

1.注册与登录:用户可以通过注册账号进入系统,支持用户名、密码和邮箱绑定等多种方式进行身份认证,并在登录后访问个性化的功能与信息。

2.首页:首页提供系统的核心功能导航,展示热门食谱推荐、最新公告、新闻资讯及论坛动态,让用户快速了解平台最新动态。

3.美食论坛:用户可以在美食论坛板块发布帖子、分享烹饪心得、参与互动讨论,并对感兴趣的话题进行点赞、评论和收藏。

4.公告通知:系统公告通知模块向用户推送重要信息,包括系统维护公告、新增功能介绍、活动预告等,确保用户及时获取最新动态。

5. 新闻资讯:用户可以浏览最新的美食新闻、健康饮食指南、烹饪技巧等信息,并通过分类筛选获取个性化推荐内容。

6.食谱信息:食谱模块提供丰富的家庭食谱,用户可以根据食材、菜系、口味等多维度筛选,并查看详细的制作步骤与食材搭配建议。

 7.修改密码:用户可以在个人账户设置中修改登录密码,需验证旧密码后设置新密码,以提高账号安全性。

8. 我的账户:用户可以在个人中心查看和管理自己的基本信息,包括用户名、头像、联系方式等,支持修改个人资料。

9.个人中心:个人中心整合用户的所有操作记录,包括收藏的食谱、发布的帖子、评论历史等,便于用户快速查看个人数据。

 10.个人首页:用户的个人首页展示其近期活动、发布的内容、收藏的食谱等信息,营造个性化的使用体验。

 11.收藏:用户可以将自己喜欢的食谱、帖子等内容收藏,方便随时查看和学习,提升使用便捷性。

12.评论管理:用户可以管理自己发布的评论内容,包括编辑、删除评论,以及查看收到的回复和互动信息。

普通用户角色用例如下图所示。

图3.1普通用户用例图

(1)管理员功能

1.登录:管理员通过专属的管理端登录系统,凭借账号权限进入后台,进行系统数据维护和管理操作。

2.后台首页:后台首页展示系统运营数据、用户统计、待审核信息等内容,为管理员提供直观的管理入口。

3.系统用户管理:管理员可以管理普通用户和其他管理员的账号,包括添加、修改、禁用或删除用户,以确保系统正常运营。

4.食谱类型管理:管理员可以对系统中的食谱分类进行增删改查,使食谱结构更加清晰,方便用户筛选和查找。

5.食谱信息管理:管理员可以添加、修改或删除食谱信息,确保食谱内容的规范性,并对用户提交的食谱进行审核。

6.材料信息管理:管理员可以维护食谱所需的食材信息,新增食材分类、调整食材内容,以优化食谱配方的完整性。

 7.系统管理:管理员可以对系统轮播图、页面内容、导航菜单等进行管理,提升平台的视觉效果和用户体验。

 8.公告通知管理:管理员可以发布、修改和删除公告通知,确保重要信息能及时传达给所有用户。

9.资源管理:管理员可以管理新闻资讯和资讯分类,对内容进行审核、更新和发布,保证信息的时效性和权威性。

10.交流论坛管理:管理员可以管理美食论坛的版块分类、用户帖子、评论等内容,维护论坛秩序,优化用户交流环境。

管理员角色用例如下图所示。

图3.2管理员用例图

3.2.2非功能性需求分析

非功能性需求分析主要是分析本系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下3-1表格中:

3-1基于ssm家庭食谱管理系统非功能需求表

需求类型

描述

性能

系统应具有高性能,能够快速响应用户请求,保持稳定的性能水平,支持高并发访问和大规模数据处理。

可靠性

系统应具有高可靠性,确保系统稳定运行,防止系统故障和数据丢失,提供数据备份和恢复机制。

安全性

系统应具有高安全性,保护用户隐私信息和数据安全,采用加密传输技术、访问控制和身份验证机制。

可用性

系统应具有高可用性,保证系统全天候运行,最大限度减少系统故障和维护时间,提供灾备和故障转移功能。

易用性

系统应具有良好的易用性,用户界面设计友好,操作简单直观,提供清晰的指导和帮助文档。

可维护性

系统应具有良好的可维护性,易于维护和升级,提供模块化和结构化代码,方便开发人员进行维护和修改。

可扩展性

系统应具有良好的可扩展性,支持新增功能和模块的集成,具备良好的架构设计和扩展性能。

3.3系统流程分析

3.3.1程序操作流程

用户访问系统,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3.3程序操作流程图

3.3.2登录流程

用户访问系统,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.4登录流程图

3.3.3注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、邮箱等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图所示。

图3.5注册流程图

3.4本章小结

本章主要通过对基于ssm家庭食谱管理系统的可行性分析、功能分析、系统用例分析、流程分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。

4  系统设计

本章主要介绍基于ssm家庭食谱管理系统的架构设计、功能模块设计和数据库系统设计。

4.1系统架构设计

在系统架构设计中,我将确定系统的整体结构和组件之间的关系。这包括选择适当的架构风格,划分系统的层次结构,并定义各个模块的职责和交互方式。架构图如下图所示。

图4.1系统架构设计图

表示层(Presentation Layer):负责与用户进行交互,将系统的功能和数据以易于理解和操作的方式展示给用户。通常包括用户界面、页面设计和用户输入验证等。

业务逻辑层(Business Logic Layer):处理系统的核心业务逻辑,包括对用户请求的处理、业务规则的执行以及数据的处理和转换。它独立于表现层和数据层,实现了业务逻辑的封装和复用。

数据层(Data Layer):负责数据的存储、访问和管理,包括数据库和持久化机制。数据层提供了对数据的增删改查操作,并与业务逻辑层进行交互,使系统能够有效地存储和检索数据。

这三个层次相互独立,通过明确的接口和协议进行通信,实现了系统的模块化和可扩展性。表现层负责将用户的请求传递给业务逻辑层,业务逻辑层处理请求并返回结果,最后数据层负责与数据库交互并提供数据支持。这种分层架构有助于实现系统的可维护性、灵活性和可测试性。

4.2系统功能模块设计

4.2.1系统整体功能模块设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。基于ssm家庭食谱管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能整体功能结果图如下图所示。

图4.2系统整体功能结构图

4.2.2系统用户模块设计

(1)系统用户模块结构图

本系统主要分为管理员和普通用户这两个用户角色。他们共享基本功能,但普通用户多了一个注册功能,以便能够注册使用系统。管理员用户在系统中有着操作权限和功能,确保了系统的一致性和易用性。系统用户模块结构图如下图4.3所示:

图4.3用户角色模块结构图

(2)各个结构的具体业务逻辑

a.查询用户信息:设计基础的查询功能,允许用户根据用户姓名查询用户信息。此功能主要用于管理员查询用户信息和用户自行查询个人信息。

b.添加用户信息:用户可以通过注册获取账号,成为系统的用户,以便享受系统提供的服务和功能。管理员可以在后台添加用户信息。

c.重置用户信息:用户可以根据需要修改个人基本信息,包括姓名、密码、头像等。这种操作可以提高用户个性化体验。

d.删除用户信息:管理员可以对删除用户信息。

4.3数据库设计

4.3.1E-R

本文在系统分析阶段就抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。基于ssm家庭食谱管理系统总体E-R图如下图4.4所示。

图4.4总E-R图

4.3.2数据库表结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表 4-1-access_token(登陆访问时长)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

token_id

int

临时访问牌ID

2

token

varchar

64

临时访问牌

3

info

text

65535

信息

4

maxage

int

最大寿命:默认2小时

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

user_id

int

用户编号

表 4-2-article(文章)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

article_id

mediumint

文章id

2

title

varchar

125

标题

3

type

varchar

64

文章分类

4

hits

int

点击数

5

praise_len

int

点赞数

6

create_time

timestamp

创建时间

7

update_time

timestamp

更新时间

8

source

varchar

255

来源

9

url

varchar

255

来源地址

10

tag

varchar

255

标签

11

content

longtext

4294967295

正文

12

img

varchar

255

封面图

13

description

text

65535

文章描述

表 4-3-article_type(文章分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

display

smallint

显示顺序

3

name

varchar

16

分类名称

4

father_id

smallint

上级分类ID

5

description

varchar

255

描述

6

icon

text

65535

分类图标

7

url

varchar

255

外链地址

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-4-auth(用户权限管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

auth_id

int

授权ID

2

user_group

varchar

64

用户组

3

mod_name

varchar

64

模块名

4

table_name

varchar

64

表名

5

page_title

varchar

255

页面标题

6

path

varchar

255

路由路径

7

parent

varchar

64

父级菜单

8

parent_sort

int

父级菜单排序

9

position

varchar

32

位置

10

mode

varchar

32

跳转方式

11

add

tinyint

是否可增加

12

del

tinyint

是否可删除

13

set

tinyint

是否可修改

14

get

tinyint

是否可查看

15

field_add

text

65535

添加字段

16

field_set

text

65535

修改字段

17

field_get

text

65535

查询字段

18

table_nav_name

varchar

500

跨表导航名称

19

table_nav

varchar

500

跨表导航

20

option

text

65535

配置

21

create_time

timestamp

创建时间

22

update_time

timestamp

更新时间

表 4-5-code_token(验证码)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

code_token_id

int

验证码ID

2

token

varchar

255

令牌

3

code

varchar

255

验证码

4

expire_time

timestamp

失效时间

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

表 4-6-collect(收藏)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

collect_id

int

收藏ID

2

user_id

int

收藏人ID

3

source_table

varchar

255

来源表

4

source_field

varchar

255

来源字段

5

source_id

int

来源ID

6

title

varchar

255

标题

7

img

varchar

255

封面

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-7-comment(评论)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

comment_id

int

评论ID

2

user_id

int

评论人ID

3

reply_to_id

int

回复评论ID

4

content

longtext

4294967295

内容

5

nickname

varchar

255

昵称

6

avatar

varchar

255

头像地址

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

source_table

varchar

255

来源表

10

source_field

varchar

255

来源字段

11

source_id

int

来源ID

表 4-8-forum(论坛)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

forum_id

mediumint

论坛ID

2

display

smallint

排序

3

user_id

mediumint

用户ID

4

nickname

varchar

16

昵称

5

praise_len

int

点赞数

6

hits

int

访问数

7

title

varchar

125

标题

8

keywords

varchar

125

关键词

9

description

varchar

255

描述

10

url

varchar

255

来源地址

11

tag

varchar

255

标签

12

img

text

65535

封面图

13

content

longtext

4294967295

正文

14

create_time

timestamp

创建时间

15

update_time

timestamp

更新时间

16

avatar

varchar

255

发帖人头像

17

type

varchar

64

论坛分类

18

istop

int

是否置顶

表 4-9-forum_type(论坛分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

name

varchar

16

分类名称

3

description

varchar

255

描述

4

url

varchar

255

外链地址

5

father_id

smallint

上级分类ID

6

icon

varchar

255

分类图标

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-10-hits(用户点击)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

hits_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

表 4-11-material_information(材料信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

material_information_id

int

材料信息ID

2

material_name

varchar

64

材料名称

3

material_type

varchar

64

材料类型

4

material_quantity

double

材料数量

5

storage_location

varchar

64

存放位置

6

note_details

text

65535

备注详情

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-12-notice(公告)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notice_id

mediumint

公告ID

2

title

varchar

125

标题

3

content

longtext

4294967295

正文

4

create_time

timestamp

创建时间

5

update_time

timestamp

更新时间

表 4-13-ordinary_user(普通用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

ordinary_user_id

int

普通用户ID

2

user_name

varchar

64

用户姓名

3

user_age

varchar

64

用户年龄

4

user_gender

varchar

64

用户性别

5

examine_state

varchar

16

审核状态

6

user_id

int

用户ID

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-14-praise(点赞)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

praise_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

status

tinyint

点赞状态:1为点赞,0已取消

表 4-15-recipe_information(食谱信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

recipe_information_id

int

食谱信息ID

2

recipe_name

varchar

64

食谱名称

3

recipe_type

varchar

64

食谱类型

4

cover_image

varchar

255

封面图片

5

cooking_time

varchar

64

烹饪时间

6

recipe_calories

varchar

64

食谱热量

7

release_date

date

发布日期

8

materials_used

text

65535

所用材料

9

recipe_details

longtext

4294967295

食谱详情

10

hits

int

点击数

11

praise_len

int

点赞数

12

collect_len

int

收藏数

13

comment_len

int

评论数

14

create_time

datetime

创建时间

15

update_time

timestamp

更新时间

表 4-16-recipe_type(食谱类型)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

recipe_type_id

int

食谱类型ID

2

recipe_type

varchar

64

食谱类型

3

create_time

datetime

创建时间

4

update_time

timestamp

更新时间

表 4-17-schedule(日程管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

schedule_id

smallint

日程ID

2

content

varchar

255

日程内容

3

scheduled_time

datetime

计划时间

4

user_id

int

用户ID

5

create_time

datetime

创建时间

6

update_time

datetime

更新时间

表 4-18-score(评分)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

score_id

int

评分ID

2

user_id

int

评分人

3

nickname

varchar

64

昵称

4

score_num

double

评分

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

source_table

varchar

255

来源表

8

source_field

varchar

255

来源字段

9

source_id

int

来源ID

表 4-19-slides(轮播图)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

slides_id

int

轮播图ID

2

title

varchar

64

标题

3

content

varchar

255

内容

4

url

varchar

255

链接

5

img

varchar

255

轮播图

6

hits

int

点击量

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-20-upload(文件上传)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

upload_id

int

上传ID

2

name

varchar

64

文件名

3

path

varchar

255

访问路径

4

file

varchar

255

文件路径

5

display

varchar

255

显示顺序

6

father_id

int

父级ID

7

dir

varchar

255

文件夹

8

type

varchar

32

文件类型

表 4-21-user(用户账户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_id

int

用户ID

2

state

smallint

账户状态:(1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

所在用户组

4

login_time

timestamp

上次登录时间

5

phone

varchar

11

手机号码

6

phone_state

smallint

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

7

username

varchar

16

用户名

8

nickname

varchar

16

昵称

9

password

varchar

64

密码

10

email

varchar

64

邮箱

11

email_state

smallint

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

12

avatar

varchar

255

头像地址

13

open_id

varchar

255

针对获取用户信息字段

14

create_time

timestamp

创建时间

表 4-22-user_group(用户组)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

group_id

mediumint

用户组ID

2

display

smallint

显示顺序

3

name

varchar

16

名称

4

description

varchar

255

描述

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

register

smallint

注册位置

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

4.4本章小结

整个基于ssm家庭食谱管理系统的需求分析主要对系统架构以及功能模块的设计,通过建立E-R模型和数据库逻辑设计完成了数据库系统设计。

5  系统实现

本系统的实现主要是根据前面的系统需求分析和系统总体设计来设计页面并实现业务逻辑。主要从基于ssm家庭食谱管理系统界面实现、业务逻辑实现这两部分进行介绍。

5.1普通用户功能实现

5.1.1用户注册界面

用户注册:输入账号、设置密码、确认密码、昵称、邮箱、选择用户身份、填写用户姓名、性别等个人信息,点击“注册”按钮完成注册。其界面如下图所示。

图5.1用户注册界面设计

5.1.2用户登录界面

用户登录:用户注册后可以用账号密码登录系统,在登录界面输入用户名、密码和验证码后点击“登录”按钮,校验通过后即可登录,同时提供找回密码的选项。其界面如下图所示。

图5.2用户登录界面设计

登录代码如下:

    @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;

        QueryWrapper wrapper = new QueryWrapper<User>();

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

5.1.3首页界面

首页界面是用户访问系统的入口页面,它展示系统的主要功能和特色。用户可以查看首页展示的轮播图、新闻资讯、公告通知等信息。首页界面图如下图所示。

图5.3首页界面设计

5.1.4公告通知界面

用户可以查看系统发布的公告通知、关于我们、联系方式、网站介绍等信息。点击公告通知进入页面可以查看该公告的详细信息。其界面图如下图所示。

图5.4公告通知界面设计

5.1.5新闻资讯界面

点击系统导航栏上的“新闻资讯”菜单按钮,将进入新闻资讯列表,用户可以查看系统发布的所有新闻资讯内容。点击某新闻资讯后进入详情页,可以查看该资讯的详细内容,用户可以点赞、收藏、评论等。其界面图如下图所示。

图5.5新闻资讯界面设计

5.1.6食谱信息界面

食谱信息模块为用户提供详细的产品数据展示,包括商品名称、图片、属性、价格、库存等信息。用户可以浏览商品详情并执行相关操作。此外,系统还支持食谱搜索功能,用户可通过关键词快速查找目标食谱信息,提升使用便捷性。其界面图如下图所示。

图5.6食谱信息界面设计

5.1.7个人中心界面

用户点击我的头像下拉菜单“个人中心”可以查看个人首页、收藏和评论管理并进行相关操作。其界面图如下图所示。

图5.7个人中心界面设计

删除的代码如下:

   @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

5.2管理员功能实现

5.2.1系统用户界面

管理员可以查看所有用户角色(管理员、普通用户)信息并进行增删改查操作。例如,点击某个普通用户后面的“详情”可以查看该用户的信息详情并可以对用户状态等信息进行修改。其界面图如下图所示。

图5.8系统用户界面设计

修改的代码如下:

   @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

}

5.2.2食谱类型管理界面

食谱类型管理:管理员可以灵活调整食谱分类,包括新增分类、查询现有分类详情、重置分类信息、删除不再需要的分类,以及添加或编辑分类下的食谱其界面图如下图所示。

图5.9食谱类型管理列表界面设计

5.2.3食谱信息管理界面

管理员点击“食谱信息管理”这一菜单会显示食谱信息列表和食谱信息添加两个子菜单,点击“食谱信息列表”可以查看所有的食谱信息和用户评论,还可以进行重置、查询、删除等操作。点击“食谱信息添加”,管理员可以添加新的食谱信息。其界面图如下图所示。

图5.10食谱信息管理界面设计

添加的代码如下:

   @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

    }

5.2.4系统管理界面

在该模块管理员可以对系统轮播图信息进行增删改查操作。点击“添加”进入页面上传轮播图图片和填写标题、链接后点击“提交”即可完成轮播图的添加。其界面图如下图所示。

图5.11系统管理界面设计

文件上传的代码如下:

 @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam(value = "file",required=false) MultipartFile file,HttpServletRequest request) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = request.getSession().getServletContext().getRealPath("\\") +"upload\\";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            int lastIndexOf = fileName.lastIndexOf(".");

            String suffix = fileName.substring(lastIndexOf);

            fileName = IdWorker.getId()+suffix;

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

}

5.2.5公告通知管理界面

公告通知管理界面供管理员创建、编辑、发布和删除公告消息,确保能及时向用户传达重要信息、公告、更新或事件等内容。通过该界面,管理员可以高效地管理所有系统公告,保证信息传递的准确性和时效性。其界面图如下图所示。

图5.12公告通知管理界面设计

5.2.6资源管理界面

在该模块管理员可以对新闻资讯和资讯分类信息进行增删改查操作。例如,点击“新闻资讯”可以查看列表中某个资讯的详情和评论。以新闻资讯为例,其界面图如下图所示。

图5.13资源管理界面设计

6  系统测试

6.1系统测试目标

为了保证“基于ssm家庭食谱管理系统设计与实现 ”的质量,使其能够稳定的运行,并排除其可能存在的未知隐患,解除软件可能存在的故障,理清楚测试与纠错的关系,如图6-1所示。

图6-1测试与纠错信息流程

6.2系统功能测试

通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。系统功能测试包括:用户注册登录功能测试、用户发表评论功能测试、用户食谱信息功能测试、管理员添加轮播图信息功能测试、管理员删除公告消息功能测试,如表6-1、6-2、6-3、6-4、6-5所示:

表6-1用户注册登录测试表

用户注册登录测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

用户注册、登录

测试用户正确注册、登录

  1. 在首页界面注册一个新用户,按规定输入合理的注册信息,提交。
  2. 用户在登录界面输入账户密码登录

用户注册成功,登录成功

结果输出符合预期

通过

表6-2前台用户发表评论测试表

前台用户发表评论测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

前台用户发表评论

测试前台用户发表评论操作

  1. 在导航栏点击“新闻资讯”并看某个新闻资讯的详情; 
  2. 在详情页面下方发表对该资讯的评论

用户发表评论成功,展示用户评论信息

结果输出符合预期

通过

表6-3用户食谱信息功能测试表

用户食谱信息功能测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

用户食谱信息功能测试

测试普通用户食谱信息功能功能

  1. 在首页导航栏点击“食谱信息;
  2. 选择一个影片进入详情页面点击“食谱”填写相关信息后点击“提交”

用户可以在线提交领食谱信息

结果输出符合预期

通过

表6-4管理员添加轮播图测试表

管理员添加轮播图测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

管理员添加轮播图测试

测试轮播图信息添加

  1. 管理员点击“系统管理”下方的“轮播图管理”;
  2. 点击“添加”输入相关信息后点击“提交”

轮播图信息添加成功,前端用户可以查看该轮播图信息

结果输出符合预期

通过

表6-5管理员删除公告消息测试表

管理员删除公告消息测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

管理员删除公告消息测试

测试公告消息删除

  1. 管理员点击“公告消息管理”下方的“公告消息列表”
  2. 选择一个公告消息信息点击“删除”并确认删除

公告消息删除成功,前端不在展示该公告消息信息

结果输出符合预期

通过

6.3测试结果总结

通过编写基于ssm家庭食谱管理系统的功能测试用例,已经检测完毕系统测试,包括用户注册登录功能测试、用户发表评论功能测试、用户食谱信息功能测试、管理员添加轮播图信息功能测试、管理员删除公告消息功能测试,通过这五大模块功能测试将为基于ssm家庭食谱管理系统的后期推广运营提供了强力的技术支撑。

7总结

本课题基于SSM(Spring、Spring MVC、MyBatis)框架,设计并实现了一款高效、便捷的家庭食谱管理系统。系统充分利用现代信息技术,提供了普通用户和管理员两个功能模块,涵盖注册登录、食谱信息管理、用户交互、美食论坛、公告通知等核心功能,满足了用户对个性化食谱管理、交流分享以及便捷查询的需求。通过本系统,用户可以轻松获取各类食谱信息,收藏喜爱的食谱,参与美食论坛进行互动交流,同时管理员可以高效地管理食谱内容和用户信息,保证系统的正常运行。整体而言,该系统有效提升了家庭烹饪的数字化管理水平,提高了用户体验,同时优化了食谱内容的组织和展示方式,使食谱信息更加系统化、规范化。

尽管本系统在食谱管理和用户交互方面取得了一定的成效,但仍有进一步优化和拓展的空间。未来,本系统可以集成人工智能推荐算法,根据用户的浏览记录、收藏习惯和饮食偏好,提供更加精准的个性化食谱推荐。此外,可以引入视频教学功能,让用户通过视频直观学习烹饪技巧,提高实用性。同时,移动端应用的开发也是未来的重点方向,以适应现代用户碎片化的使用习惯,提供更便捷的食谱浏览和管理体验。进一步,本系统可以扩展社交功能,支持用户上传自己的食谱,形成更加丰富的美食社区,促进用户之间的经验交流。综上,本系统在家庭食谱管理领域具有广阔的应用前景,未来将朝着更智能化、个性化、便捷化的方向持续优化和完善。

参考文献

  1. 朱金波.Java编程语言在计算机软件开发中的应用优势分析[J].信息记录材料,2023,24(05):68-70.
  2. 熊群毓.大数据时代MySQL数据库的应用分析[J].信息与电脑(理论版),2023,35(14):209-212.
  3. 赵停停.基于MySQL数据库技术的Web动态网页设计研究[J].信息与电脑(理论版),2023,35(17):174-176.
  4. 张浩.SSM框架在Web应用开发中的设计与实现研究[J].电脑知识与技术,2023,19(08):52-54.
  5. Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):
  6. 何蒙.个性化营养食谱:让减肥更健康持久[N].中国妇女报,2022-10-25(008).
  7. 钟良堂,谭昊,廖瑾睿等.基于图像识别的智慧餐饮管理系统[J].信息与电脑(理论版),2022,34(06):175-179.
  8. 弭霁航.基于深度学习的中餐菜品识别及营养成分估计系统研究与实现[D].北京邮电大学,2022.001585.
  9. Hejing W .Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.
  10. ]李绪远,陈云贵,何敏等.智能烹饪小助手的设计与实现[J].电脑知识与技术,2021,17(32):81-83.
  11. 李磊.基于深度学习的中式菜品识别方法研究[D].南京信息工程大学,2021.000496.
  12. 郭广颂,席俊杰,文振华.个性化食谱智能优化系统[J].计算机工程与设计,2021,42(04):1143-1150.
  13. 鲜易洲,杨蕊,吴蓉等.时食美食分享系统的设计与分析[J].电脑知识与技术,2021,17(09):85-87.
  14. Chen G ,Xu J .Design and implementation of efficient Learning platform based on SpringBoot Framework[J].Journal of Electronics and Information Science,2020,6(1):
  15. 兰传浩. 基于知识图谱的中文食谱智能问答系统设计与实现[D]. 曲阜师范大学, 2023.
  16. 刘子豪,闭祖松,简钰轩,等. 基于大数据的食谱推荐系统设计 [J]. 工业控制计算机, 2022, 35 (07): 92-93+96.
  17. 刘展. 基于知识图谱的母婴食谱问答系统的设计与实现[D]. 厦门大学, 2020.
  18. 陈虹. 基于HTML5的校园食谱推荐系统的设计与实现 [J]. 智库时代, 2020, (15): 257-258.
  19. 仲亮靓. 基于饮食知识图谱的食谱推荐系统的设计与实现[D]. 东南大学, 2019.
  20. 缪应生,李杰,闫伟,等. “互联网+”时代下基于健康食谱的点餐系统设计 [J]. 电脑知识与技术, 2019, 15 (13): 101-103.

致  谢

这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,

其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。

最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。

再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐