摘要
随着现代生活节奏的加快,人们对饮食的需求不再仅仅局限于满足基本的饥饿感,更多的是追求健康、营养和美食的享受。因此,一个能够为用户提供饮食分享、交流、学习和推荐的平台变得尤为重要。基于Java的饮食分享平台,旨在为用户打造一个集菜谱分享、健康饮食建议、美食文化交流于一体的互动社区。
Java作为一种成熟、稳定且广泛应用的编程语言,具有跨平台、面向对象、安全性高等特点,非常适合用于构建这样的饮食分享平台。通过Java,可以实现高效的数据处理、稳定的系统运行和丰富的用户体验。
系统前台通过JSP页面展示,后台使用SSM框架,数据库采用目前流行的开源关系型数据库MYSQL。在前台的技术使用上,使用了目前流行的vue.js,让页面展现得更加的整齐漂亮。
关键字:饮食分享平台;SSM;MySQL
Design and implementation of a food sharing platform based on SSM
Abstract
With the acceleration of modern life pace, people's demand for food is no longer limited to meeting basic hunger, but more is pursuing the enjoyment of health, nutrition, and delicious food. Therefore, a platform that can provide users with food sharing, communication, learning, and recommendations has become particularly important. A Java based food sharing platform aims to create an interactive community for users that integrates recipe sharing, healthy food advice, and food culture exchange.
Java, as a mature, stable, and widely used programming language, has the characteristics of cross platform, object-oriented, and high security, making it very suitable for building such a food sharing platform. Through Java, efficient data processing, stable system operation, and rich user experience can be achieved.
The front-end of the system is displayed through JSP pages, the back-end uses the SSM framework, and the database uses the popular open-source relational database MYSQL. In terms of front-end technology, the currently popular Vue.js is used to make the page appear more neat and beautiful.
Keywords: Food sharing platform; SSM; MySQL
1 绪论
1.1 研究背景与意义
在数字化时代,随着人们生活品质的提升和健康意识的增强,饮食已不仅仅是为了满足基本的生存需求,而是逐渐演变成一种生活态度、文化交流和健康追求的综合体现。在这样的背景下,一个集菜谱分享、饮食文化交流、健康饮食建议为一体的综合性平台应运而生。基于Java的饮食分享平台不仅符合当代人对健康、营养和美食的追求,而且为用户提供了一个互动、共享、学习的空间。通过该平台,用户可以轻松获取丰富的饮食资讯,分享个人的烹饪经验和美食心得,进一步推动饮食文化的传承与发展。同时,平台还能够根据用户的个人偏好和需求,提供个性化的饮食建议,帮助用户实现健康饮食的目标。因此,基于Java的饮食分享平台不仅具有广阔的市场前景,而且对于推动健康饮食文化的传播和普及具有重要意义。
1.2国内外现状
近年来,随着信息技术的飞速发展和人们对健康饮食的日益关注,基于Java的饮食分享平台在国内外都受到了广泛的关注和研究。
国外研究现状:
在国外,特别是在欧美发达国家,基于Java的饮食分享平台已经得到了广泛的应用和深入的研究。这些平台不仅提供了丰富的菜谱分享功能,还结合了先进的营养学知识和个性化推荐算法,为用户提供更加科学、健康的饮食建议。同时,这些平台还注重用户体验和社交互动,让用户能够方便地分享自己的烹饪经验和美食心得,形成活跃的饮食分享社区。
国内研究现状:
在国内,基于Java的饮食分享平台也受到了越来越多的关注和重视。随着人们生活水平的提高和健康意识的增强,越来越多的人开始关注饮食的质量和营养搭配。因此,国内的研究者和开发者也积极投入到了基于Java的饮食分享平台的研究和开发中。这些平台不仅提供了丰富的饮食资讯和菜谱分享功能,还结合了中国传统的饮食文化和现代营养学知识,为用户提供更加符合中国人口味和饮食习惯的饮食建议。
综上所述,基于Java的饮食分享平台在国内外都受到了广泛的关注和研究。这些平台不仅提供了丰富的饮食资讯和菜谱分享功能,还结合了先进的营养学知识和个性化推荐算法,为用户提供更加科学、健康的饮食建议。同时,这些平台还注重用户体验和社交互动,让用户能够方便地分享自己的烹饪经验和美食心得,形成活跃的饮食分享社区。未来,随着技术的不断进步和人们对健康饮食的需求不断增加,基于Java的饮食分享平台将会得到更加广泛的应用和深入的研究。
1.3论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章为绪论,此章节对所设计和实现的系统的背景、意义和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的总体设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的普通用户、管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
2 饮食分享平台分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的分析,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1 可行性分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
饮食分享平台设计与实现是一个基于SSM饮食分享平台,在实现这个系统所采用的技术方案是基于Java的 Web实现方案,系统采用Spring 、SpringMvc、Mybatis方案来实现。SSM框架是一个非常成熟的框架、Java从97年诞生到现在经历了野蛮的生长,Java在各个领域度是有做非常成熟的解决方案,如电信、银行、电商等。SSM又是一套快速整个项目的开箱即用的技术方案。所以采用基于SSM方式来实现本系统是一个非常成熟有简单的技术方案。技术可行性上是非常可行的。
从经济可行性上看项目在开发阶段需要一台开发PC,在生产阶段需要web服务器和数据库服务器。一台个人PC从经济上来看也不是太多问题,在后期的系统部署生产上来说,服务器的投入也不会过高,在经济层面上是一个比较可行的。
系统从法律层面上来没有对第三方有其他放有法律层面的问题,系统数据库采用的Mysql 开源社区数据库、框架采用的是开源的SSM。系统资讯和相关内容也是法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。
2.2 系统功能分析
饮食分享平台划分为了普通用户模块和管理员模块这两大部分。
普通用户模块:
首页:普通用户登录后,可以在首页浏览饮食平台的最新动态、推荐菜谱、食材资
讯等信息,方便用户快速了解饮食平台的最新内容。
通知公告:用户可以在通知公告模块查看饮食平台发布的通知公告,包括关于活动、
促销信息、新功能上线等内容,方便用户及时获取相关信息。
饮食资讯:用户可以在饮食资讯模块查看最新的饮食资讯,包括食材介绍、营养知识、
健康饮食建议等内容,帮助用户了解更多关于饮食的信息。
饮食分享:用户可以在饮食分享模块分享自己的食谱、烹饪心得等内容,也可以浏览
其他用户的分享,促进用户之间的交流和分享。
我的账户:用户可以在我的账户模块查看自己的个人信息、账户余额、积分等,方便
管理自己的账户信息。
后台首页:管理员登录后可以访问后台首页,以查看饮食分享平台的整体运行情况,包括用户数量、分享数量、系统消息等数据统计信息。
系统用户:管理员可以在系统用户模块进行系统用户的管理,包括添加新用户、修改用户信息、删除用户等操作,以保证系统的安全和正常运行。
饮食分享管理:管理员可以在饮食分享管理模块对用户的分享进行管理,包括审核分享、修改分享信息、删除分享等操作,以确保分享内容的质量和合规。
饮食分类管理:管理员可以在饮食分类管理模块对饮食分享进行分类管理,包括添加新分类、修改分类信息、删除分类等操作,方便用户浏览和查询。
系统管理:管理员可以在系统管理模块进行系统参数设置、轮播图管理、敏感词管理等操作,保证系统的正常运行和用户体验。
通知公告管理:管理员可以在通知公告管理模块发布、修改、删除平台的通知公告,包括活动通知、系统更新等内容,以便及时通知用户相关信息。
资源管理:资源管理包括饮食资讯和资讯分类两部分,管理员可以在饮食资讯模块对饮食相关资讯进行管理,包括添加资讯、修改资讯信息、删除资讯等操作;在资讯分类模块可以对资讯进行分类管理,方便用户浏览和查询。
饮食分享平台的非功能性需求比如饮食分享平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1饮食分享平台非功能需求表
安全性 | 主要指饮食分享平台数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指饮食分享平台能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响饮食分享平台占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着饮食分享平台的页面展示内容进行操作,就可以了。 |
可维护性 | 饮食分享平台开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
饮食分享平台的完整UML用例图分别是图2-2、图2-3。
图2-2就是普通用户角色的用例展示。
![](https://i-blog.csdnimg.cn/direct/6acfb64931a149f198f693125506ad7d.png)
图2-1 饮食分享平台普通用户角色用例图
图2-3就是管理员角色的用例展示。
![](https://i-blog.csdnimg.cn/direct/103840d372bb408dab45ba5f7db0a67f.png)
图2-3饮食分享平台管理员角色用例图
2.4 系统流程和逻辑
系统业务流程图,如图所示:
![](https://i-blog.csdnimg.cn/direct/b07bc21826684f0ca7941b8b9b9e403e.png)
图24登录流程图
![](https://i-blog.csdnimg.cn/direct/c239ac0bc6b644a8ac8c514c6e43ad92.png)
图2-5注册信息流程图
![](https://i-blog.csdnimg.cn/direct/ab89d55a5efb4e2bb5ecb76df59f39ee.png)
图2-6添加信息流程图
2.5本章小结
本章主要通过对饮食分享平台的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个饮食分享平台要实现的功能。同时也为饮食分享平台的代码实现和测试提供了标准。
3 饮食分享平台总体设计
3.1系统结构设计
软件系统的功能是多样的,在软件设计的过程中分层进行的思维是极为重要的,这样的思维可以在软件开发的过程中很大程度降低层之间的耦合度,这一点是符合“低耦合、高内聚”的软件设计原则的。因此,可以把饮食分享平台划分为显示层、数据层和业务层。在系统的架构中,为了方便上层调用完成相应的功能,每个层次都会为其对应的上层提供相应的接口。
系统结构图如下所示。
![](https://i-blog.csdnimg.cn/direct/ec7ea3741aff4fe885e6f8f100e08537.png)
图3-1系统结构图
1.显示层
此层主要是为用户提供计算机交互的UI界面,它根据用户的相应操作来提供相应的逻辑处理。
2.数据库层
数据库不仅是对软件所涉及的实体映射,而且也是系统读取和处理数据的关键所在。本系统的整个操作流程设计都是围绕着数据库里面的数据所展开的。
3.业务层
主要是通过系统的业务层中的业务逻辑来实现业务需求,依据相应的需求,剖析实现的策略和对应的业务逻辑,其优劣,在很大程度上决定了软件的质量,所以,整个系统成败的主要原因在于业务的逻辑实现。
3.2系统功能模块设计
本章主要讨论的内容包括饮食分享平台的功能模块设计、数据库系统设计。
3.2.1整体功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本饮食分享平台中的用例。那么接下来就要开始对本饮食分享平台的架构、主要功能和数据库开始进行设计。饮食分享平台根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
![](https://i-blog.csdnimg.cn/direct/b10597b819e7470aa7a25695a4d6cc4c.png)
图3-2饮食分享平台功能模块图
3.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个饮食分享平台中主要的数据库表总E-R实体关系图。
![](https://i-blog.csdnimg.cn/direct/39a68a270af64407897c62e78af3ee7b.png)
图3-3饮食分享平台总E-R关系图
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表categorization_of_diet (饮食分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | categorization_of_diet_id | int | 10 | 0 | N | Y | 饮食分类ID | |
2 | categorization_of_diet | varchar | 64 | 0 | Y | N | 饮食分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_sharing_id | int | 10 | 0 | N | Y | 饮食分享ID | |
2 | dietary_name | varchar | 64 | 0 | Y | N | 饮食名称 | |
3 | categorization_of_diet | varchar | 64 | 0 | Y | N | 饮食分类 | |
4 | food_pictures | varchar | 255 | 0 | Y | N | 饮食图片 | |
5 | dietary_characteristics | varchar | 64 | 0 | Y | N | 饮食特色 | |
6 | introduction_to_diet | text | 65535 | 0 | Y | N | 饮食介绍 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | contact_information | varchar | 64 | 0 | Y | N | 联系方式 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | varchar | 64 | 0 | Y | N | 敏感词汇 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个饮食分享平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 饮食分享平台关键模块的设计与实现
饮食分享平台的详细设计与实现主要是根据前面的饮食分享平台的需求分析和饮食分享平台的总体设计来设计页面并实现业务逻辑。主要从饮食分享平台界面实现、业务逻辑实现这两部分进行介绍。
4.1登录模块
管理员、用户在登录界面输入账号+密码,完成验证,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图所示。
![](https://i-blog.csdnimg.cn/direct/64db9e4f08e74603974b43f600884450.png)
图4.1 登录界面图
4.2注册模块
注册模块满足用户两部分,当用户想要进行相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,家长用户注册其主界面展示如下图所示。
![](https://i-blog.csdnimg.cn/direct/95540916ba2449fd9d0e86badb738dc9.png)
图4.2 注册界面图
4.3密码修改模块
用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的界面。
![](https://i-blog.csdnimg.cn/direct/d0c1247e1b72440988914a1d9be6b4ea.png)
图4.3 密码修改界面图
4.4用户管理模块
管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/a186d1d2c6b24f5792ee5df6ad38c70f.png)
图4.4 用户管理界面图
4.5饮食分享模块
饮食分享:用户查看饮食分享列表的所有信息,包括饮食分类、饮食名称片等。输入关键字进行下拉搜索。界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/dc8b2346c585430eb4af4243474a9bd4.png)
图4.5饮食分享界面图
4.6饮食资讯模块
饮食资讯:查看饮食资讯的详细信息,包括内容介绍。可以进行点赞、收藏和评论。界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/1a1b3f47ec7b4dffab2a44bb1c7273cd.png)
图4.6 饮食资讯界面图
4.7饮食分享管理模块
饮食分享管理:管理点击“饮食分享管理”这一菜单的时候,会出现饮食分享列表和饮食分享添加这两个子菜单,可以对这两个模块进行增删改查操作。界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/6bcafcb27db943379687741625d2a11c.png)
图4.7饮食分享列表界面图
![](https://i-blog.csdnimg.cn/direct/11ad500f12fa4270ad4616e61701e7d3.png)
图4.8饮食分享添加界面图
4.8轮播图管理模块
轮播图管理:管理员可以对系统前台展示的轮播图以及公告栏进行增删改查,方便用户进行查看。界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/d7e4490ed6dc4e078af2e31a9d5b44e0.png)
图4.9轮播图管理界面图
4.9通知公告管理模块
通知公告管理:管理员可以对系统前台展示的公告栏进行增删改查,方便用户进行查看。界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/3da04086908f4ff186fd66ba1efcaf68.png)
图4.9通知公告界面图
4.10资源管理模块
资源管理:当点击“资源管理”这一菜单的时候,会出现饮食资讯、资讯分类这两个子菜单,可以对这两个模块进行增删改查操作。资源管理界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/6de36a729cf04bff993c35c27714ead4.png)
图4.10饮食资讯界面图
![](https://i-blog.csdnimg.cn/direct/6a808fe0f7eb465eb56669376ec01cbd.png)
图4.11饮食分类界面图
5系统测试
5.1 系统测试用例
系统测试包括:用户登录功能测试、饮食资讯查看、饮食分类列表添加、通知公告搜索、密码修改、饮食评论功能测试,如表5-1、5-2、5-3、5-4、5-5、5-6所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
饮食资讯查看功能测试:
表5-2 饮食资讯查看功能测试表
用例名称 | 饮食资讯查看 |
目的 | 测试饮食资讯查看功能 |
前提 | 无 |
测试流程 | 点击教学课程 |
预期结果 | 可以查看到所有饮食资讯 |
实际结果 | 实际结果与预期结果一致 |
饮食分类列表添加界面测试:
表5-3 饮食分类列表界面测试表
用例名称 | 添加饮食分类列表测试用例 |
目的 | 测试饮食分类列表添加功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)点击饮食分类列表,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的饮食分类列表 |
实际结果 | 实际结果与预期结果一致 |
通知公告搜索功能测试:
表5-4通知公告搜索功能测试表
用例名称 | 通知公告搜索测试 |
目的 | 测试通知公告搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的通知公告 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
饮食评论功能测试:
表5-6饮食评论功能测试表
用例名称 | 饮食评论测试用例 |
目的 | 测试饮食评论功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)搜索查看饮食评论信息,点击评论来源。 2)填写用户姓名、评论内容,点击进行查询。 |
预期结果 | 查询成功 |
实际结果 | 实际结果与预期结果一致 |
5.2 系统测试结果
通过编写饮食分享平台的测试用例,已经检测完毕用户登录功能测试、饮食资讯查看、饮食分类列表添加、通知公告搜索、密码修改、饮食评论功能测试,通过这些测试为饮食分享平台的后期推广运营提供了强力的技术支撑。
结论
本文描述了饮食分享平台设计与实现的原理和开发过程,该系统是通过SSM框架来搭建后台,中间件使用的是Tomcat服务器,数据库管理平台采用开源的Mysql,前台使用的是JQuery框架,同时使用Validate校验框架,这样就可以减少前端代码的输入量,而且基于JQuery框架的Validat框架使用简单,是流行的前端使用框架,前端使用的主要是Jsp页面展示技术。
在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从开发这个饮食分享平台的过程中我也收获了许许多多宝贵的方法以及设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、SSM、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
[1]Kartini A G ,Gumilar I ,Abidin Z H , et al.3D model of Pawon Cave: The first prehistoric dwelling discovery in West Java, Indonesia[J].Digital Applications in Archaeology and Cultural Heritage,2024,32e00311-.
[2]Febriyanti M R ,Saefullah K ,Susanti D R , et al.Knowledge, attitude, and utilization of traditional medicine within the plural medical system in West Java, Indonesia.[J].BMC complementary medicine and therapies,2024,24(1):64-64.
[3]粟梁.基于Java的汽车租赁管理系统[J].电脑编程技巧与维护,2024,(01):43-45+52.DOI:10.16184/j.cnki.comprg.2024.01.035.
[4]刘乂毓.应用Java的加密解密算法实验教学软件包[J].福建电脑,2024,40(01):89-93.DOI:10.16707/j.cnki.fjpc.2024.01.017.
[5]韩小龙,司珍,吕晓峰等.基于面向对象编程的Java语言程序设计方法分析[J].集成电路应用,2024,41(01):228-229.DOI:10.19339/j.issn.1674-2583.2024.01.103.
[6]Farouq U C ,Brilian A V ,Fathurrodin N A , et al.Technical and Business Evaluation of Geothermal Dryhouse for Coffee in Kamojang, West Java, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1293(1):
[7]Novitasari L ,Nurhidayati A S ,Cahyadi M , et al.Reproductive performance of female rabbit (Oryctolagus cuniculus) at the smallholder farmer in Karanganyar Regency, Central Java Province, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1292(1):
[8]Oswald C .Java Basics Using ChatGPT/GPT-4[M].Mercury Learning and Information:2023-12-28.
[9]袁爱平,陈畅,孙士兵等.基于SSM框架的高校学生信息管理系统设计与实现[J].工业控制计算机,2023,36(12):127-129.
[10]单厚信,刘舒心,程文远等.基于SSM架构的图书资料管理系统设计与实现[J].现代信息科技,2023,7(23):46-51.DOI:10.19850/j.cnki.2096-4706.2023.23.010.
[11]闫凤琴,李汶洋.基于SSM的防诈骗警民协同防护平台的设计与实现[J].中国新通信,2023,25(23):140-142.
[12]宋晓燕,杨芬.Java程序设计语言的分层教学实践[J].电子技术,2023,52(11):182-183.
[13]田玉昆.基于Java Web技术的手机销售网站的设计与实现[J].电脑知识与技术,2023,19(32):47-49.DOI:10.14004/j.cnki.ckt.2023.1766.
[14]刘方磊.基于SSM框架的旅游大数据分析系统设计与实现[J].中国新技术新产品,2023,(21):22-25.DOI:10.13612/j.cnki.cntp.2023.21.002.
[15]张国芳.Java编程语言在计算机软件开发中的应用方向分析[J].信息记录材料,2023,24(11):138-141.DOI:10.16009/j.cnki.cn13-1295/tq.2023.11.042.
[16]潘显民,欧战祥,夏雅.仿生学下基于SSM的大学生学习资源共享系统设计[J].湘南学院学报,2023,44(05):44-48.
[17]刘小丹.C++与Java程序设计语言的特征研究[J].电脑编程技巧与维护,2023,(10):52-54.DOI:10.16184/j.cnki.comprg.2023.10.001.
[18]赵进步,袁慧.基于SSM框架的“云节”系统设计与实现[J].电脑编程技巧与维护,2023,(10):90-92.DOI:10.16184/j.cnki.comprg.2023.10.021.
[19]刘佳乐,赵雨,厚露露等.基于Java Web的学生信息管理系统[J].现代信息科技,2023,7(19):21-24.DOI:10.19850/j.cnki.2096-4706.2023.19.005.
[20]时俊雅,黄苏雨.基于Java的大学生在线学习系统设计与实现[J].无线互联科技,2023,20(19):73-75.
致 谢
逝者如斯夫,不舍昼夜。转眼间,大学生会员活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?
感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。
少年,追风赶月莫停留,平荒尽处是春山。