1.项目背景:
我们学校门口有家湘菜馆因为好吃所以人特别多,我和老板的关系比较好为了帮老板减轻负担也为了让用户可以方便地使用手机进行在线点单.我和老板商量我帮他做一个自助点餐项目.一方面可以提升自己的业务能力同时也能用自己所学的知识帮助他人!
2.基本功能:
普通用户自主点餐: [index.html]
1.注册
2.登陆
3.登陆后进入主页面可以看到当前店家的所有菜品列表(上面附有价格等)
4.选择自己想吃的菜进行下单即可
5.用户可以查看自己的历史菜单 追踪订单详情和状态
老板(管理员用户)管理菜单: [admin.html]
1.登陆
2.管理员可以对菜单进行新增 删除
3.管理员可以查看所有用户的订单信息 修改订单完成的状态
3.自助点餐的流程:
1.进店扫码登陆
2.选择自己想吃的菜品
3.下单
4.需求分析:
用户管理:
注册 登陆 注销
管理员(商家) 普通用户(消费者)
菜品管理:
针对菜品进行新增 查看 删除(管理员用户)
针对菜品进行查看(普通用户)
订单管理:
针对普通用户可以新增订单 查看订单
针对管理员用户可以查看所有人的订单 修改订单状态
5.数据库设计:
1.根据需求找出实体(名词)
用户(普通+管理员) 菜品 订单
2.分析实体之间的关系
用户 & 菜品 无直接关系
用户 & 订单 1 : N
订单 & 菜品 M : N(一般需要借助中间表)
3.表格
菜品表: 描述菜的属性( id(int) 名称(varchar) 价格(int)以分为单位)
用户表: 描述用户的信息(id(int) 用户名(varchar) 密码(varchar) isAdmin int(0表示普通 1表示管理员))
订单表: 描述订单信息,分成两个表更好的表示两者的关系.
表1: 订单-用户表
订单id
用户id
下单时间
是否完成
表2: 订单-菜品表
订单id
菜品id
6.JDBC数据库操作代码:
a) 先封装一个DBUtil类 管理连接(单例类)
b) 创建实体类(属性和数据库基本一致)
User
Dish
Order
c) 创建对应的DAO类封装数据访问接口
UserDao
DishDao
OrderDao
d)针对前面的代码进行单元测试
因为数据库在linux上 代码无法在windows上运行
加上服务器的地址也不行 因为mysql有安全组问题
加上安全组还不行 因为数据库也有安全组
打JAR包 部署在服务器上
第一个测试点:测试UserDao:
第二个测试点:测试DishDao
在测试DishDao的时候需要将以下的model进行修改
7.前后端接口设计
此处接口设计采用restful方式 更适合前后端分离进行使用
用户管理:
菜品管理:
订单管理: