Spring Boot助力的厨艺互动平台开发指南

2 相关技术
2.1 Spring Boot框架简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot可以与经典的Java开发工具一起使用或者作为命令行工具安装。无论如何,需要JavaSDK1.6或者更高版本,本项目用到的是JDK1.8版本。
2.2 B/S架构介绍
在早期的程序开发中,使用得最多的莫过于C/S架构了,现在的生活中软件在生活的各个方面落地,使用了C/S架构开发出来的软件也是不在少数的,比如企业日常办公使用到的微软的OFFICE软件,我国自己研发的文档处理软件WPS,还有娱乐软件腾讯的QQ,腾讯的微信,以及电脑上安装的杀毒软件金山杀毒软件,瑞金杀毒软件等都是C/S架构。但是在Internet网络盛行之后,鉴于大家对数据信息共享的需求,在原来的C/S架构上进行了升级改进之后,有了现在的主流架构B/S架构,B/S架构就是在C/S架构上多了一个浏览器,让原来的直接访问服务器的方式,变成了通过浏览器去访问服务器。充分运用到了当下不断成熟的浏览器技术。也让软件的开发成本以及维护成本降低了。可以说B/S这种新型的架构模式让软件的开发变得便利化。
2.3 MySQL数据库介绍
有了程序功能的操作,也需要对程序操作的各个功能所产生的数据信息存放在一个固定的仓库里面,这个所谓的仓库就是大家最熟悉的程序开发需要使用的数据库了,数据库能够发展到至今的模样,其实也是经历了很多的变化历程的,在最开始由于数据信息处理的需要开始推出最低级的数据管理,这个阶段也是数据库早期的人工管理的阶段,后来也经历了文件管理的阶段,这个阶段的数据管理因为信息不能够进行共享,加上管理的数据对配套的程序产生了较强的依赖性,在数据信息管理上也存在很多数据的重复记载造成数据冗余等问题。所以为了解决上述一系列文件管理阶段所产生的数据管理的问题,对数据管理方式进行了全方位的升级改造,也就让数据管理进入了一个全新的阶段——数据库系统的阶段。这个阶段也是数据库管理数据的一个全新的相当高级的阶段。
说到数据库,也不得不说数据库的模型,数据库拥有的数据模型有网状,还有层次,以及关系型这三样数据库模型。网状的结构就是把记录的每条信息都比喻成一个点,点跟点之间也有联系,最终就形成了一个像网一样的结构,就是所谓的网状数据模型。也有对数据记录使用树状结构的方式进行数据保存,这个就是层次数据模型,关系数据库模型运用在现在市面上常见的数据库当中了,像本系统开发使用的MySQL数据库,还有安装过程比较复杂的Sqlserver数据库,也有一些比较小巧的关系型数据库,像Access数据库,FoxPro数据库等数据库。这样的关系型数据库将数据表里面的行还有列进行相互关联形成一个二维矩阵的方式来保存程序所产生的数据信息。
本次之所以选择MySQL数据库来当程序数据存放的仓库,则是因为此数据库安装不用费时,也不需要各种百度信息去解决安装过程中出现的任何问题,而且由于自己的电脑内存比较小,才4个G,为了更好的开发项目程序,针对低配置的电脑选择MySQL数据库也是情理之中。
2.4 JAVA语言介绍
在1995年这一年的5月份,著名的Sun Microsystems公司在程序开发设计上面郑重推出一种面向对象开发的程序设计语言——Java,最开始的时候Java是由詹姆斯.高斯林这位伟大的JAVA之父来进行主导,但是在后来由于各种原因,让甲骨文公司这个针对商业程序创建了oracle大型数据库的公司收购了Java。Java的平台总共算下来有3个,分别为javaME和javaSE以及javaEE这3个java平台。下面将对其进行分别介绍。
1.在电脑桌面程序的开发上面需要选择JavaME,这个用得也比较多。
2.企业也会根据工作以及业务需要开发各种软件,那么就会选用JavcEE这个支持企业版软件的开发的Java平台,JavcEE主攻运用在企业领域上面的web应用,JavcEE也在javaSE的基础上获得了比如jsp技术 ,Servlet技术等程序开发技术的支持。
3.现在生活中手机的普及化,也使得手机端这样的移动设备的软件的兴起,JavaME这个迷你版java平台就能运用于移动端的软件开发操作。

4 系统设计
4.1系统概要设计
厨艺交流平台并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构,图4.1就是开发出来的程序工作原理图。
在这里插入图片描述

图4.1 程序工作的原理图
4.2系统功能结构设计
下图就是系统功能结构图。
在这里插入图片描述

图4.1 系统功能结构图
4.3数据库设计
4.3.1数据库E-R图设计
程序设计是离不开对应数据库的设计操作的,这样的做法就是减少数据对程序的依赖性,所以数据库的设计也是需要花费大量的日常时间来进行设计的,在设计中对程序开发需要存储的数据信息进行实体划分,先确认实体,然后设计实体的属性等操作,这种设计就是数据库设计里面不能少的必须有的E-R模型设计。为了降低程序设计的对应的数据库设计难度,开发人员也可以使用相应的工具来进行E-R模型设计,现在市面上设计E-R模型的工具有PowerDesigner建模工具,Navicat制作工具,还有微软的Visio绘图工具。为了简便起见,本程序在设计E-R模型的时候,就选用了微软的Visio这款功能强大,操作便利的绘图工具。
下面就展示厨艺交流平台的实体E-R图。
(1)下图就是商品信息实体E-R图
在这里插入图片描述

图4.7 商品信息实体E-R图
(2)下图就是菜谱分类实体E-R图
在这里插入图片描述

图4.8 菜谱分类实体E-R图
(3)下图就是商品分类实体E-R图
在这里插入图片描述

图4.9 商品分类实体E-R图
4.3.2 数据库表结构设计
本次程序开发选用的数据库管理工具是MySQL数据管理工具,使用它存放数据也需要创建程序对应的数据库文件,并命名刚创建的数据库文件,有了数据库也需要创建各种数据表来充实数据库,在数据表的创建中,不仅需要对数据表命名,也需要对数据表的字段进行设计,包括每个数据表里面需要设置的字段名称,字段对应的数据类型信息,字段的主键设置这个也是不可缺少的,因为每个数据表里面的主键就是标记着这个数据表跟其他数据表相区分的唯一标志。就相当于生活中的每个人都有姓名,但是上网搜索自己的名字,会发现全国上下有很多人的名字跟自己的名字一模一样,包括姓氏以及名字,区分每个人的唯一信息就是每个人的身份证号信息,主键在数据表里面也是起着这样的重要作用。下面就介绍本次开发的程序厨艺交流平台的数据表结构信息。
表4.1 菜谱分类
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
caipufenlei varchar(200) 否 菜谱分类
表4.2 菜谱信息
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
caipinbianhao varchar(200) 是 NULL 菜品编号
caipinmingcheng varchar(200) 是 NULL 菜品名称
caipufenlei varchar(200) 是 NULL 菜谱分类
kouwei varchar(200) 是 NULL 口味
nandu varchar(200) 是 NULL 难度
pengrenshizhang varchar(200) 是 NULL 烹饪时长
tupian varchar(200) 是 NULL 图片
yuancailiao longtext 是 NULL 原材料
caipinjieshao longtext 是 NULL 菜品介绍
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
clicknum int(11) 是 0 点击次数
表4.3 购物车表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
tablename varchar(200) 是 shangpinxinxi 商品表名
userid bigint(20) 否 用户id
goodid bigint(20) 否 商品id
goodname varchar(200) 是 NULL 商品名称
picture varchar(200) 是 NULL 图片
buynumber int(11) 否 购买数量
price float 是 NULL 单价
discountprice float 是 NULL 会员价
表4.4 健康文章
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
wenzhangbiaoti varchar(200) 是 NULL 文章标题
wenzhangfengmian varchar(200) 是 NULL 文章封面
wenzhangleixing varchar(200) 是 NULL 文章类型
fabushijian datetime 是 NULL 发布时间
wenzhangneirong longtext 是 NULL 文章内容
表4.5 美食日志
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
rizhibianhao varchar(200) 是 NULL 日志编号
rizhibiaoti varchar(200) 是 NULL 日志标题
rizhifengmian varchar(200) 是 NULL 日志封面
yonghuzhanghao varchar(200) 是 NULL 用户账号
yonghuxingming varchar(200) 是 NULL 用户姓名
fabushijian datetime 是 NULL 发布时间
meishirizhi longtext 是 NULL 美食日志
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
表4.6 订单
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
orderid varchar(200) 否 订单编号
tablename varchar(200) 是 shangpinxinxi 商品表名
userid bigint(20) 否 用户id
goodid bigint(20) 否 商品id
goodname varchar(200) 是 NULL 商品名称
picture varchar(200) 是 NULL 商品图片
buynumber int(11) 否 购买数量
price float 否 0 价格/积分
discountprice float 是 0 折扣价格
total float 否 0 总价格/总积分
discounttotal float 是 0 折扣总价格
type int(11) 是 1 支付类型
status varchar(200) 是 NULL 状态
address varchar(200) 是 NULL 地址
tel varchar(200) 是 NULL 电话
consignee varchar(200) 是 NULL 收货人
表4.7 商品分类
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shangpinfenlei varchar(200) 否 商品分类
表4.8 商品信息
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shangpinmingcheng varchar(200) 是 NULL 商品名称
shangpinbianhao varchar(200) 是 NULL 商品编号
shangpinfenlei varchar(200) 是 NULL 商品分类
tupian varchar(200) 是 NULL 图片
shangpinxiangqing longtext 是 NULL 商品详情
price float 否 价格
onelimittimes int(11) 是 -1 单限
alllimittimes int(11) 是 -1 库存
表4.9 食材分类
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shicaifenlei varchar(200) 否 食材分类
表4.10 食材信息
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shicaimingcheng varchar(200) 是 NULL 食材名称
shicaichandi varchar(200) 是 NULL 食材产地
shicaididian varchar(200) 是 NULL 食材地点
shicaireliang varchar(200) 是 NULL 食材热量
fabushijian datetime 是 NULL 发布时间
shicaifengmian varchar(200) 是 NULL 食材封面
shiyongyiji longtext 是 NULL 食用宜忌
xuangoujiqiao longtext 是 NULL 选购技巧
thumbsupnum int(11) 是 0 赞
crazilynum int(11) 是 0 踩
表4.11 收藏表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 用户id
refid bigint(20) 是 NULL 收藏id
tablename varchar(200) 是 NULL 表名
name varchar(200) 否 收藏名称
picture varchar(200) 否 收藏图片
表4.12 管理员信息表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
username varchar(100) 否 用户名
password varchar(100) 否 密码
role varchar(100) 是 管理员 角色
addtime timestamp 否 CURRENT_TIMESTAMP 新增时间
表4.13 用户
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
yonghuzhanghao varchar(200) 否 用户账号
yonghuxingming varchar(200) 否 用户姓名
mima varchar(200) 否 密码
xingbie varchar(200) 是 NULL 性别
nianling int(11) 是 NULL 年龄
lianxidianhua varchar(200) 是 NULL 联系电话
dianziyouxiang varchar(200) 是 NULL 电子邮箱
money float 是 0 余额

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/459540.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码学习:如何阅读开源代码

如何阅读开源代码 准备 目的:学习代码,代码添加新功能、旧代码重构知识准备:技术基础、编程基础、文档开发环境:依赖环境及操作系统笔记:添加代码注释及重要思路记录文档 实操 阅读项目Readme.md:大致了…

基于边缘计算的智能门禁系统架构设计分析

案例 阅读以下关于 Web 系统架构设计的叙述,回答问题1至问题3。 【说明】 某公司拟开发一套基于边缘计算的智能门禁系统,用于如园区、新零售、工业现场等存在来访被访业务的场景。来访者在来访前,可以通过线上提前预约的方式将自己的个人信息…

软考:CORBA架构

CORBA过时了吗 CORBA指南 个人小结: IPC,进程间通信,Socket应用在不同机器之间的通信 RPC是一种技术思想而非一种规范 但站在八九十年代的当口,简单来说,就是我在本地调用了一个函数,或者对象的方法&…

沧穹科技室内音频“北斗”定位技术亮相第三届北斗规模应用国际峰会

10月24日-28日,由国家发展改革委、国家网信办、交通运输部、湖南省人民政府共同主办的第三届北斗规模应用国际峰会于株洲国际会展中心隆重开幕。沧穹科技总经理戴坚先生受邀出席开幕式,公司自研室内音频“北斗”定位产品亮相北斗规模应用示范场景区。 峰…

NSSCTF刷题篇web部分

源码泄露 [FSCTF 2023]寻找蛛丝马迹 这个源码泄露,可以记录一下,涉及的知识点比较多 打开环境 查看源码, 第一段flag 乱码,恢复一下 乱码恢复网站:乱码恢复 (mytju.com) 剩下的就只说方法 http://node4.anna.nss…

Pytest-Bdd-Playwright 系列教程(2):支持在多浏览器、多环境中执行测试

Pytest-Bdd-Playwright 系列教程(2):支持在多浏览器、多环境中执行测试 前言一、 修改 conftest.py 文件二、创建配置文件三、修改search_steps.py文件四、运行测试总结 前言 本文教程知识点: 支持在多浏览器、多环境中执行测试 …

【ROS概述】C++运行hello world

Python和C通用步骤: 一、创建工作空间并初始化 1、新建工作空间(work space)——使用终端(ctrlaltT) mkdir -p 空间名称/src 2、进入工作空间 cd 空间名称 可以在文件里看到同步变化,并且demo01_ws文…

SpringBoot项目上高并发问题的解决方案

案例:多个用户同时购买数量为1的商品,所以只能有一个购买成功 不加锁 会重复购买 乐观锁,加字段处理,在并发少的时候可以使用 加版本号字段,第一次查询数量的时候读取到版本号,更新数量时用同样的版本号更新…

前端经典【面试题】持续更新HTML、CSS、JS、VUE、FLUTTER、性能优化等

HTML/CSS 面试题 什么是语义化 HTML&#xff1f; 说明&#xff1a;语义化 HTML 使用 HTML 标签来描述内容的含义&#xff0c;而不仅仅是其外观。使用语义化标签可以提高可读性和可访问性&#xff0c;并对 SEO 友好。示例&#xff1a; <header><h1>网站标题</h1&…

服务器数据恢复—异常断电导致服务器挂载分区无法访问的数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌服务器同品牌存储&#xff0c;Linux centos7EXT4文件系统。 服务器故障&#xff1a; 意外断电导致服务器操作系统不能正常启动。经过修复后系统可以正常启动&#xff0c;但是挂载的分区无法正常访问。使用fsck修复这个问题分区&#xff…

gin入门教程(7): 使用 Logrus + Lumberjack 创建日志中间件

结合 Logrus 和 Lumberjack&#xff0c;可以创建一个高效的日志中间件&#xff0c;用于记录请求和响应。以下是实现步骤&#xff1a; 1. 安装依赖 首先&#xff0c;确保安装了 Logrus 和 Lumberjack&#xff1a; go get github.com/sirupsen/logrus go get gopkg.in/natefin…

汉明距离汉明重量

目录 汉明距离汉明重量检错&纠错应用场景例题 汉明距离 在信息论中&#xff0c;两个等长字符串之间的汉明距离&#xff08;英语&#xff1a;Hamming distance&#xff09;是两个字符串对应位置的不同字符的个数。换句话说&#xff0c;它是将一个字符串变换成另外一个字符串…

v4.7版本使用线下付款方式不给管理员发送新订单通知问题修复

在app/api/controller/v1/order/StoreOrderController.php文件中&#xff0c;将红框内的代码注释&#xff0c;加上绿框的代码即可修复 if ($this->services->setOrderTypePayOffline($order[order_id])) {event(NoticeListener, [$order, admin_pay_success_code]);retur…

行为设计模式 -命令模式- JAVA

命令模式 一.简介二. 案例2.1 接收者&#xff08;Receiver&#xff09;2.2 命令接口实现对象&#xff08;ConcreteCommand&#xff09;2.3 调用者&#xff08; invoker&#xff09;2.4 获取Receiver对象2. 5 装配者客户端测试 三. 结论3.1 要点3.2 示例 前言 本设计模式专栏写了…

MySQL 数据库备份与恢复全攻略

MySQL 数据库备份与恢复全攻略 引言 在现代应用中&#xff0c;数据库是核心组件之一。无论是个人项目还是企业级应用&#xff0c;数据的安全性和完整性都至关重要。为了防止数据丢失、损坏或意外删除&#xff0c;定期备份数据库是必不可少的。本文将详细介绍 MySQL 数据库的备…

SQL Server 中,将单行数据转换为多行数据

在 SQL Server 中&#xff0c;将单行数据转换为多行数据通常涉及到将某个字段中的逗号分隔的值拆分成多行。这种操作通常称为“拆分”或“展开”&#xff08;Explode&#xff09;。以下是一些常用的方法来实现这一目标&#xff1a; 1. 使用内置函数 STRING_SPLIT 从 SQL Serv…

rabbitmq 使用注意事项

1&#xff0c;注意开启的端口号&#xff0c;一共四个端口号&#xff0c;1883是mqtt连接的端口号&#xff0c;如果没开&#xff0c;是连接不上的需要手动起mqtt插件。 //开始mqtt插件服务 rabbitmq-plugins enable rabbitmq_mqtt 2&#xff0c;15672端口是http网页登录的管理后…

智能汽车时代的“地平线”,下一个十年的“宁王”

文&#xff5c;刘俊宏 编&#xff5c;王一粟 在港交所上市的敲锣声中&#xff0c;余凯不会忘记9年前从百度大楼中走出&#xff0c;决定从一名科学家转型成一名创业者的夏天。 选择的创业方向&#xff0c;作为大名鼎鼎NEC实验室&#xff08;全球最早的人工智能实验室&#xf…

基于单片机的废气监测系统研究与实现

【 摘 要 】 如今为了尽早发现和防治各种各样的废气,减少对人们的危害,保护自身以及个人或者公共财产安全,需要自动化的报警器给人们提前预警。 随着 “ 科技时代 ” 的快速发展,传感器技术取得了飞速的发展和提升,应用它的地方越来越多,市场需求越来越紧迫,技术要求也越…

【C++初阶】模版入门看这一篇就够了

文章目录 1. 泛型编程2. 函数模板2. 1 函数模板概念2. 2 函数模板格式2. 3 函数模板的原理2. 4 函数模板的实例化2. 5 模板参数的匹配原则2. 6 补充&#xff1a;使用调试功能观察函数调用 3. 类模板3 .1 类模板的定义格式3. 2 类模板的实例化 1. 泛型编程 在C语言中&#xff0…