Springboot 订餐管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点
springboot 订餐管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有
完整的源代码和数据库,系统主要采用B/S模式开发。
前段主要技术 bootstrap.css jquery
后端主要技术 springboot
数据库 mysql
开发工具 IDEA JDK1.8 TOMCAT 8.5
springboot 订餐管理系统1
二、功能介绍
本系统模块实现功能如下:
(1)前台模块
1)用户、商家注册: 登录系统后可以注册成会员或者商家。
2)个人信息: 会员可以查看自己的注册信息并且可以修改。
3)菜品搜索: 会员可以查询自己所需要的菜品信息。
4)店铺查看功能: 会员可以查看店铺。
5)常用地址维护
6)收藏商品
7)提交订单,查看订单,加入购物车
8)公告浏览
9)注销退出:用户退出此系统。
(2)后台模块
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)用户管理:对用户信息进行添加、删除、修改和查看
(3)商家管理:对商家信息进行添加、删除、修改和查看
(4)角色管理:对角色信息进行添加、删除、修改和查看
(5)菜单管理:对菜单信息进行添加、删除、修改和查看
(6)公告管理:对公告信息进行添加、删除、修改和查看
(7)菜品类别管理:对菜品类别信息进行添加、删除、修改和查看
(8)菜品管理:对菜品信息进行添加、删除、修改和查看
(9)订单管理:对订单信息进行添加、删除、修改和查看
(10)订单统计:对订单按照月度进行统计
(11)配送管理:对配送信息进行添加、删除、修改和查看
数据库设计
(1)管理员信息表如表5.1所示:
表5.1 管理员信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | glyid | INTEGER | 11 | 是 | 管理员编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
(2)用户表如表5.2所示:
表5.2 用户表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | dh | VARCHAR | 40 | 否 | 电话 |
6 | jtzz | VARCHAR | 40 | 否 | 家庭住址 |
7 | sj | VARCHAR | 40 | 否 | 时间 |
8 | zt | VARCHAR | 40 | 否 | 状态 |
(3)商家表如表5.3所示:
表5.3 商家表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | sjid | INTEGER | 11 | 是 | 商家编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | lxdh | VARCHAR | 40 | 否 | 联系电话 |
6 | lxdz | VARCHAR | 40 | 否 | 联系地址 |
7 | tp | VARCHAR | 40 | 否 | 图片 |
(4)角色信息表如表5.4所示:
表5.4 角色信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | jsid | INTEGER | 11 | 是 | 角色编号 |
2 | js | VARCHAR | 40 | 否 | 角色 |
(5)菜单表如表5.5所示:
表5.5菜单表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cdid | INTEGER | 11 | 是 | 菜单编号 |
2 | cd | VARCHAR | 40 | 否 | 菜单 |
3 | js | VARCHAR | 40 | 否 | 角色 |
(6)公告表如表5.6所示:
表5.6公告表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | ggid | INTEGER | 11 | 是 | 公告编号 |
2 | bt | VARCHAR | 40 | 否 | 标题 |
3 | nr | VARCHAR | 40 | 否 | 内容 |
4 | fbsj | VARCHAR | 40 | 否 | 发布时间 |
(7)菜品类别表如表5.8所示:
表5.8 菜品类别信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cplbid | INTEGER | 11 | 是 | 菜品类别编号 |
2 | lbmc | VARCHAR | 40 | 否 | 类别名称 |
3 | ms | VARCHAR | 40 | 否 | 描述 |
(8)菜品信息表如表5.9所示:
表5.9 菜品信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cpid | INTEGER | 11 | 是 | 菜品编号 |
2 | cpmc | VARCHAR | 40 | 否 | 菜品名称 |
3 | tp | VARCHAR | 40 | 否 | 图片 |
4 | js | VARCHAR | 40 | 否 | 介绍 |
5 | cplb | VARCHAR | 40 | 否 | 菜品类别 |
6 | jg | VARCHAR | 40 | 否 | 价格 |
7 | sj | VARCHAR | 40 | 否 | 商家 |
代码设计
/**菜品列表 查询caipin* */@RequestMapping(value = "listpage")public ModelAndView listpage(HttpServletRequest request, HttpServletResponse response) {try {request.setCharacterEncoding("gb2312");//强制字符集}catch(Exception e){e.printStackTrace();}Map<String,Object> map= new HashMap<String,Object>();ModelAndView mav = new ModelAndView();//初始化mav.setViewName("caipin/caipinlist");//跳转jsp 页面String sql="";String cpid=(String)request.getParameter("cpid");if(cpid!=null&&!cpid.equals("")){// System.out.println(cpid);sql+=" and cpid like '%"+cpid+"%'";//符合条件 拼接sql 菜品编号}String cpmc=(String)request.getParameter("cpmc");if(cpmc!=null&&!cpmc.equals("")){// System.out.println(cpmc);sql+=" and cpmc like '%"+cpmc+"%'";//符合条件 拼接sql 菜品名称}String tp=(String)request.getParameter("tp");if(tp!=null&&!tp.equals("")){// System.out.println(tp);sql+=" and tp like '%"+tp+"%'";//符合条件 拼接sql 图片}String js=(String)request.getParameter("js");if(js!=null&&!js.equals("")){// System.out.println(js);sql+=" and js like '%"+js+"%'";//符合条件 拼接sql 介绍}String cplb=(String)request.getParameter("cplb");if(cplb!=null&&!cplb.equals("")){// System.out.println(cplb);sql+=" and cplb like '%"+cplb+"%'";//符合条件 拼接sql 菜品类别}String jg=(String)request.getParameter("jg");if(jg!=null&&!jg.equals("")){// System.out.println(jg);sql+=" and jg like '%"+jg+"%'";//符合条件 拼接sql 价格}String sj=(String)request.getParameter("sj");if(request.getSession().getAttribute("yhm")!=null){// System.out.println(sj);sql+=" and sj like '"+request.getSession().getAttribute("yhm")+"'";//符合条件 拼接sql 商家}List list=null;try{list=caipindao.querylist(sql);//查询caipin 表数据返回 list对象}catch(Exception e){e.printStackTrace();;}mav.addObject("list",list);//赋值变量return mav;}/**菜品添加方法 对表 caipin 进行添加* */@RequestMapping(value = "add")public ModelAndView add(HttpServletRequest request, HttpServletResponse response){try {request.setCharacterEncoding("gb2312");//强制字符集}catch(Exception e){e.printStackTrace();}ModelAndView mav = new ModelAndView();//初始化mav.setViewName("caipin/caipinadd");caipin bean=new caipin();String cpid=(String)request.getParameter("cpid");//菜品编号 变量bean.setCpid(cpid);//赋值封装String cpmc=(String)request.getParameter("cpmc");//菜品名称 变量bean.setCpmc(cpmc);//赋值封装String tp=(String)request.getParameter("tp");//图片 变量bean.setTp(tp);//赋值封装String js=(String)request.getParameter("js");//介绍 变量bean.setJs(js);//赋值封装String cplb=(String)request.getParameter("cplb");//菜品类别 变量bean.setCplb(cplb);//赋值封装String jg=(String)request.getParameter("jg");//价格 变量bean.setJg(jg);//赋值封装String sj=(String)request.getParameter("sj");//商家 变量bean.setSj(sj);//赋值封装try{caipindao.add(bean);//执行 添加 caipin 添加操作}catch(Exception e){e.printStackTrace();;}request.setAttribute("msg", "<script>alert('添加成功');</script>");//操作提示return addpage(request,response);}/**菜品添加页面 * */@RequestMapping(value = "addpage")public ModelAndView addpage(HttpServletRequest request, HttpServletResponse response){try {request.setCharacterEncoding("gb2312");//强制字符集// request.setAttribute("conn",jdbcTemplate.getDataSource().getConnection());}catch(Exception e){e.printStackTrace();}ModelAndView mav = new ModelAndView();//初始化对象mav.setViewName("caipin/caipinadd");//跳转页面对象return mav;}/**菜品删除方法 对表 caipin 进行删除* */@RequestMapping(value = "del")public ModelAndView del(HttpServletRequest request, HttpServletResponse response){String id=(String)request.getParameter("keyid");//获得 主键idModelAndView mav = new ModelAndView();// mav.setViewName("add/add");try{caipindao.delete(id);//执行 删除 caipin 方法}catch(Exception e){e.printStackTrace();;}request.setAttribute("msg", "<script>alert('删除成功');</script>");//返回前台 操作提示return listpage(request,response);}
三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为IDEA开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspfoodshop.sql 系统名称jspfoodshop
四 系统实现






源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
相关文章:

Springboot 订餐管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 springboot 订餐管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有 完整的源代码和数据库&…...

判断当前Activity是否有DialogFragment显示
DialogFragment一种情况是在当前Activity上启动,一种情况是在Fragment上启动,判断当前fragmentManager上是否有,以及遍历判断子fragment上是否有,即可确定是否有DialogFragment展示。 使用方式: // supportFragmentMa…...

开发一个npm组件包(2)
通过vueelement 原来后台 开发npm包的时候 会遇到一下几个问题 入口文件变化为package/index 需要再配置打包方法 package.json下 "scripts": {"package": "vue-cli-service build --target lib ./src/package/index.js --name managerpage --dest…...

迅为RK3568开发板Scharr滤波器算子边缘检测
本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程\04_OpenCV 开发配套资料\33”目录下,如下图所示: 在 Sobel 算子算法函数中,如果设置 ksize-1 就会使用 3x3 的 Scharr 滤波器。Scharr 算子是 Soble 算子在 ksize…...

HJ86 求最大连续bit数
目录 一、题目 二、代码 一、题目 求最大连续bit数_牛客题霸_牛客网 二、代码 #include <iostream> #include<stack> #include<vector> using namespace std; void TEN_to_TWO(int x, vector<int>& data) { //10进制转换成二进制stack<int&…...

Grafana 10 新特性解读:体验与协作全面提升
作者:徽泠(苏墨馨) 为了庆祝 Grafana 的 10 年里程碑,Grafana Labs 推出了 Grafana 10,这个具有纪念意义的版本强调增强用户体验,使各种开发人员更容易使用。Grafana v10.0.x 为开发者与企业展示卓越的新功能、可视化与协作能力&…...

Django实现音乐网站 ⒆
使用Python Django框架做一个音乐网站, 本篇主要为排行榜功能及音乐播放器部分功能实现。 目录 推荐排行榜优化 设置歌手、单曲跳转链接 排行榜列表渲染优化 视图修改如下: 模板修改如下: 单曲详情修改 排行榜列表 设置路由 视图处理…...

20基于MATLAB的车牌识别算法,在环境较差的情景下,夜间识别度很差的车牌号码可以精确识别出具体结果,程序已调通,可直接替换自己的数据跑。
基于MATLAB的车牌识别算法,在环境较差的情景下,夜间识别度很差的车牌号码可以精确识别出具体结果,程序已调通,可直接替换自己的数据跑。 20matlab车牌识别 (xiaohongshu.com)...

vue音频制作
Vue 音频制作指的是使用 Vue.js 框架开发音频制作相关的 Web 应用程序。Vue.js 是一种现代化的 JavaScript 框架,它可以帮助开发者更快速、更高效地构建交互式的 Web 应用程序。 音频制作在 Vue.js 中的实现可以通过使用一些开源音频库和插件来实现,如 …...

好莱坞编剧大罢工终于结束;与OpenAI创始人共进早餐;使用DALL-E 3制作绘本分享;生成式AI的基础设施架构 | ShowMeAI日报
👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 好莱坞编剧大罢工终于结束:简单说就是AI妥协了 https://www.wgacontract2023.org/the-campaign/summary-of-the-2023-wga-…...

buuctf week2-web-ez_sql
闭合之后尝试判断字段数,存在WAF,使用大小写绕过(后面的sql语句也需要进行大小写绕过) ?id1 Order by 5-- 测出有5列 ?id1 Order by 6-- 查一下数据库名、版本、用户等信息 ?id1Union Select database(),version(),user(),4,…...

实验2.1.2 交换机的常用配置
项目2 交换技术的位置 活动2 交换机的常用配置 一、具体要求: (1)添加1台计算机,将标签名更改为PC1。 (2)添加1台S3700-26C-HI交换机,标签名为SWA,将交换机的名称设置为SWA。 &am…...

功率放大器应用场景分析报告
功率放大器作为一种能够将低电压信号放大到高电压水平的关键设备,在多个领域中发挥着重要作用。报告通过对实验研究、射频通信、能源与电力系统、医疗诊断与治疗以及工业自动化等领域的综合分析,下面西安安泰为大家介绍功率放大器的应用场景。 实验研究 …...

解决 Centos 安装 Python 3.10 的报错: Could not import runpy module
操作环境:CentOS 7、Gcc 4.8.5、Python 3.10.0 系统上已经有 2.x,3.6 版本的 Python 了,但是还是想装一个 3.10 的。因为刚写的脚本文件是较高版本的,在 3.6 上无法正常运行,Python 语法不是很了解,只能从…...

HTML5简介-HTML5 新增语义化标签-HTML5 新增多媒体标签
一、HTML5简介 HTML5,全称为HyperText Markup Language 5,是HTML的第五个版本,由万维网联盟(World Wide Web Consortium,W3C)和Web Hypertext Application Technology Working Group(WHATWG&am…...

pyqt---子线程进行gui操作导致界面崩溃
在 PyQt(或 Qt 通常)中,您不能直接在子线程中执行与 GUI 相关的操作。这可能会导致应用程序崩溃或不可预测的行为。所有与 GUI 相关的操作都应该在主线程中执行。 如果您需要在子线程完成某些操作后显示一个消息框,可以使用 PyQt…...

vue-cli 输出的模板 html 文件使用条件语句
背景 项目使用的是 vue-cli 脚手架,需要根据不同环境的配置,在输出的 html 模板中使用条件语句来生成不同的代码。 环境变量 在 .env.development 中,定义环境变量 VUE_APP_DISABLE_IP_ACCESStrue使用条件语句 第一种方法,使…...

Spring Boot集成kafka的相关配置
引入依赖: 额外依赖只需要这一个,kafka-client 不是springboot 的东西,那是原生的 kafka 客户端, kafka-test也不需要,是用代码控制broker的东西。 <dependency><groupId>org.springframework.kafka</g…...

Git(11)——Git相关问题解答以及常用命令总结
目录 一、简介 二、问题 三、常用命令总结 一、简介 本篇文章将介绍作者在学习Git的过程所遇到的困惑以及熟悉Git后总结的常用命令 二、问题 ①Git配置的邮箱和用户名和Git的ssh密钥有什么联系?假如我使用Gitlab在张三这个账户上配置了ssh公钥,但是…...

【LeetCode高频SQL50题-基础版】打卡第7天:第36~40题
文章目录 【LeetCode高频SQL50题-基础版】打卡第7天:第36~40题⛅前言按分类统计薪水🔒题目🔑题解 上级经理已离职的公司员工🔒题目🔑题解 换座位🔒题目🔑题解 电影评分🔒题目&#x…...

C++入门1
C入门1 1.前言2.命名空间1.C语言对于命名空间方面的缺陷2.命名空间的语法特性1.域作用限定符2.命名空间的可嵌套性 3.声明与定义分离的命名空间4.命名空间的展开5.多个命名空间中命名冲突6.对于命名空间的推荐写法 3.iostream1.cout和endl2.cin 3.缺省参数1.缺省参数的形式2.缺…...

Matlab论文插图绘制模板第118期—进阶气泡图
之前的文章中,分享过Matlab气泡图的绘制模板: 图虽说好看,但有一个缺点:需要手动调节两个图例的位置。 为了解决这一问题,我们不妨结合前段时间分享的紧凑排列多子图的绘制模板: 从而达到自动对齐排列的效…...

grafana接入OpenTSDB设置大盘语法
目录 1、filter过滤语法1.1 精准匹配1.2 正则匹配1.3 通配符匹配 完整示例1、 展示应用app的CPU利用率监控2)展示应用app的在线核数 1、filter过滤语法 1.1 精准匹配 literal_or : tagv的过滤规则: 精确匹配多项迭代值,多项迭代值以’|分隔&a…...

HarmonyOS 远端状态订阅开发实例
IPC/RPC 提供对远端 Stub 对象状态的订阅机制, 在远端 Stub 对象消亡时,可触发消亡通知告诉本地 Proxy 对象。这种状态通知订阅需要调用特定接口完成,当不再需要订阅时也需要调用特定接口取消。使用这种订阅机制的用户,需要实现消…...

实战一:Http轮询弹幕拦截
系列文章目录 训练地址:https://www.qiulianmao.com websocket逆向http拦截websocket拦截视频号直播弹幕采集实战一:Http轮询更新中实战一:Http轮询 系列文章目录前言一、判断消息传输技术二、用户进入直播间三、 用户发言四、 用户送礼五、点赞事件六、用户唯一id的获取七…...

虚拟机独立 IP 配置
虚拟机独立 IP 配置 1. 点击虚拟网络编辑器 2. 点击更改设置 3. 查看本地电脑网卡型号并设置虚拟网络编辑器桥接网卡为同型号网卡 4. 设置有限网络信息 5. 点击网络编辑按钮并点击身份 6. 编辑名称并选择MAC地址 7. 配置 IPv4 地址后点击应用即可...

升级教育技术软件的多合一解决方案
当今时代技术和教育联系越来越紧密,教育机构对强大、安全、灵活的 IT 解决方案的探索至关重要。 全球事件、技术进步以及学生和教职员工不断变化的需求影响着不断变化的教育格局,我们要采取变革性的方法来确保教育的连续性和质量提升。 Splashtop Ente…...

c++视觉检测-----角点检测
角点检测:cornerHarris() cornerHarris()函数是OpenCV中用于执行Harris角点检测的函数。Harris角点检测是一种用于检测图像中角点的技术,通常用于特征检测和图像匹配。以下是cornerHarris()函数的用法: void cornerHarris(InputArray src, …...

虚拟机安装Docker
安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。…...

虚幻引擎5:增强输入的使用方法
一、基本配置 1.创建一个输入映射上下文(映射表) 2.创建自己需要的操作映射或者轴映射 3.创建完成之后进入这个映射,来设置类型,共有4个类型 1.Digital:是旧版操作映射类型,一般是按下抬起来使用,像跳跃…...