Java实现餐厅点餐系统的实例代码

 更新时间:2020年06月11日 09:29:05   作者:灵魂 漫步  
这篇文章主要介绍了Java实现餐厅点餐系统,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

学习Java实现餐厅点餐系统,本文实现该系统的功能截图,和数据库设计SQL语句,系统功能图,功能优势等供大家参考

1.点餐管理系统背景

随着科技的发展,去饭店吃饭点餐和结账都是以线上操作的形势完成。
a.和现在有的系统比较起来,本系统有餐桌管理,菜系管理,菜名管理,订单管理,订单详情等功能。
b.和现有系统比较起来,本系统是B/S结构,一般点餐系统为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑或者手机具有浏览器,在同一局域网就可以进行订餐。
c.从架构方面来讲,我们的系统为分布式架构,传统的点餐系统没有我们的架构合理。

2.点餐管理系统技术架构

主要技术
Spring、SpringMVC、Mybatis
JSP、JSTL、jQuery、HTML、CSS、JS
Mysql
bootstrap
开发工具和环境
Eclipse
Maven
Tomcat 7
JDK 1.8
Mysql 5.6
Win10 操作系统

3.系统架构及功能

在这里插入图片描述

4.数据库设计

-- 餐桌表
CREATE TABLE `dinnertable` (
 `id` int(11) NOT NULL AUTO_INCREMENT,--餐桌id
 `tableName` varchar(20) DEFAULT NULL, -- 餐桌名称
 `tableStatus` int(11) DEFAULT '0',  -- 餐桌状态  0表示空闲状态  1表示已预订状态
 `orderDate` datetime DEFAULT NULL,  -- 预定餐桌时间
 PRIMARY KEY (`id`)
)
-- 菜系表 川菜,湘菜等
CREATE TABLE `foodtype` (
 `id` int(11) NOT NULL AUTO_INCREMENT, --菜系id
 `typeName` varchar(20) DEFAULT NULL,   --菜系名称
 PRIMARY KEY (`id`)
)
-- 菜名表
CREATE TABLE `food` (
 `id` int(11) NOT NULL AUTO_INCREMENT, -- 菜名id
 `foodName` varchar(20) DEFAULT NULL,   -- 菜名
 `foodType_id` int(11) DEFAULT NULL,     -- 所属菜系
 `price` double DEFAULT NULL,           -- 价格
 `mprice` double DEFAULT NULL,         -- 会员价格
 `remark` varchar(200) DEFAULT NULL,     --菜名描述
 `img` varchar(100) DEFAULT NULL,       -- 菜名图片对应路径
 PRIMARY KEY (`id`),
 KEY `fk_food_foodType_id` (`foodType_id`),
 CONSTRAINT `fk_food_foodType_id` FOREIGN KEY (`foodType_id`) REFERENCES `foodtype` (`id`)
)

-- 订单表
CREATE TABLE `orders` (
 `id` int(11) NOT NULL AUTO_INCREMENT,  -- 订单id
 `table_id` int(11) DEFAULT NULL,         -- 餐桌id
 `orderDate` datetime DEFAULT NULL,      -- 下单时间
 `totalPrice` double DEFAULT NULL,       -- 总金额
 `orderStatus` int(11) DEFAULT '0',        --支付状态 0未支付  1已支付
 PRIMARY KEY (`id`),
 KEY `order_table_id` (`table_id`),
 CONSTRAINT `order_table_id` FOREIGN KEY (`table_id`) REFERENCES `dinnertable` (`id`)
) 

-- 订单明细表
CREATE TABLE `orderdetail` (
 `id` int(11) NOT NULL AUTO_INCREMENT,    -- 订单明细id
 `orderId` int(11) DEFAULT NULL,       -- 所属订单id
 `food_id` int(11) DEFAULT NULL,       -- 菜名id
 `foodCount` int(11) DEFAULT NULL,      -- 订餐数量
 PRIMARY KEY (`id`),
 KEY `orderDetail_order_id` (`orderId`),
 KEY `orderDetail_food_id` (`food_id`),
 CONSTRAINT `orderDetail_food_id` FOREIGN KEY (`food_id`) REFERENCES `food` (`id`),
 CONSTRAINT `orderDetail_order_id` FOREIGN KEY (`orderId`) REFERENCES `orders` (`id`)
)

-- 管理员表
CREATE TABLE `admin` (
 `id` varchar(20) NOT NULL,           -- 管理员id
 `name` varchar(20) DEFAULT NULL,        -- 管理员姓名
 `password` varchar(32) DEFAULT NULL,      -- 管理员密码
 PRIMARY KEY (`id`)
)

5.后台管理功能

登录系统首页

在这里插入图片描述

餐桌列表:显示餐桌详情,可以通过上面搜索按钮搜索类似餐桌,也可以删除餐桌

在这里插入图片描述

添加新餐桌功能

在这里插入图片描述

菜系列表:显示菜系详情,可以通过上面搜索按钮搜索类似菜系,也可以删除菜系

在这里插入图片描述

修改菜系名称功能

在这里插入图片描述

添加菜系功能

在这里插入图片描述

菜品列表:显示菜品列表,可以通过上面搜索按钮搜索类似菜品,也可以删除菜系

在这里插入图片描述

修改菜品功能:可以修改菜系所属菜系、菜品名称、价格、简介、图片等属性。

在这里插入图片描述

添加菜品功能

在这里插入图片描述

订单列表管理:显示已有餐桌订单情况,如果未结账的,用户点击结账付款后可以进行结账。

在这里插入图片描述

订单详情:可以查看用户都点了哪些菜,每个菜单价多少,数量多少

在这里插入图片描述

6.前台用户点餐功能

用户点餐时进入菜单页,选择没有预定的餐桌,这里只显示未预定餐桌

在这里插入图片描述

选择餐桌后会进入餐桌首页,可以查看到所有菜品信息

在这里插入图片描述

用户可以根据菜系列表和关键字搜索对应的菜品

在这里插入图片描述

点击菜品进入菜详情页面,用户可以将菜加入餐车中

在这里插入图片描述

放入购物车后会进入清单列表,在这里我们可以返回继续点餐,也可以修改已加入菜品数量,或者移除菜品

在这里插入图片描述

点击下单后后端会受到这个消息,开始做菜;如果用户结束吃饭可以点击结账按钮,通知服务员进行结账

在这里插入图片描述

总结

到此这篇关于Java实现餐厅点餐系统的文章就介绍到这了,更多相关java 餐厅点餐系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制

    全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制

    这篇文章主要介绍了全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • SpringMVC框架整合Junit进行单元测试(案例详解)

    SpringMVC框架整合Junit进行单元测试(案例详解)

    本文详细介绍在SpringMVC任何使用Junit框架。首先介绍了如何引入依赖,接着介绍了编写一个测试基类,并且对其中涉及的各个注解做了一个详细说明,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • springmvc实现文件上传功能

    springmvc实现文件上传功能

    这篇文章主要为大家详细介绍了springmvc实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • SpringBoot单元测试框架Mockito介绍及使用

    SpringBoot单元测试框架Mockito介绍及使用

    与集成测试将系统作为一个整体测试不同,单元测试更应该专注于某个类。所以当被测试类与外部类有依赖的时候,尤其是与数据库相关的这种费时且有状态的类,很难做单元测试。但好在可以通过“Mockito”这种仿真框架来模拟这些比较费时的类,从而专注于测试某个类内部的逻辑
    2023-01-01
  • java排查进程占用系统内存高方法

    java排查进程占用系统内存高方法

    这篇文章主要为大家介绍了java进程占用系统内存高排查方法,
    2023-06-06
  • SpringBoot中的yml文件中读取自定义配置信息及遇到问题小结

    SpringBoot中的yml文件中读取自定义配置信息及遇到问题小结

    这篇文章主要介绍了SpringBoot中的yml文件中读取自定义配置信息,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • SpringCloud 分布式微服务架构操作步骤

    SpringCloud 分布式微服务架构操作步骤

    SpringCloud是一种微服务的框架,利用它我们可以去做分布式服务开发,这篇文章主要介绍了SpringCloud 分布式微服务架构,需要的朋友可以参考下
    2022-07-07
  • MyBatis-Plus MetaObjectHandler的原理及使用

    MyBatis-Plus MetaObjectHandler的原理及使用

    MyBatis-Plus的MetaObjectHandler接口允许开发者自动填充实体类字段,如创建时间、更新时间等公共字段,减少代码重复,提高数据一致性和完整性,感兴趣的可以了解一下
    2024-10-10
  • JAVA中的延迟队列DelayQueue应用解析

    JAVA中的延迟队列DelayQueue应用解析

    这篇文章主要介绍了JAVA中的延迟队列DelayQueue应用解析,DelayQueue是一个根据元素的到期时间来排序的队列,而并非是一般的队列那样先进先出,最快过期的元素排在队首,越晚到期的元素排得越后,需要的朋友可以参考下
    2023-12-12
  • Request与Session的存值取值操作

    Request与Session的存值取值操作

    这篇文章主要介绍了Request与Session的存值取值操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论