我们做的系统是一个基于Java web与MySQL的食堂订餐系统

班级: 计科二班

小组成员:李鉴宣、袁超

1、开发环境

  • 开发编辑器使用:Visual Studio Code
  • 数据库使用:MySQL8.0
  • 项目打包工具:maven3以上
  • 项目本地部署测试:Tomcat8以上
  • 在开发上使用了一个Jleopard-MVC 基于Servlet 3.1改造的,servlet快速开发脚手架详细用法请参考:

    https://github.com/chg122345/jleopard

http://www.jleopard.org/

2、实现的基本功能功能

用户端功能

  • 实现学生在线选座
  • 实现学生在线选菜
  • 实现将所选菜添加进餐车并完成在线下单
  • 查看自己选购的菜品

管理员功能

  • 实现管理员后台增减餐桌数量
  • 实现管理员后台更改菜的种类
  • 实现管理员后台增减更新菜品信息
  • 实现后台显示学生下单信息

2、项目结构

  • Java文件

    • config文件夹:关于项目的数据库配置信息
    • controller文件夹:包含一些管理员的操作
    • dao文件夹:数据持久层
    • entritys文件夹:实体类
    • filter文件夹:过滤器
    • service文件夹:业务逻辑层
    • util文件夹:项目工具包
  • webapp目录
    • app目录:前台页面
    • sys目录:后台页面

4、项目关键代码

数据库配置信息 DemoConfigConstant.java:

public interface DemoConfigConstant {

    String BASE_PACKAGE = "org.jleopard.ihotel";

    String CONTROLLER_PACKAGE = "org.jleopard.ihotel.controller";

    String ENTITY_PACKAGE = "org.jleopard.ihotel.entity";

    String DATASOURCE_URL = "jdbc:mysql://127.0.0.1:3306/ihotel?characterEncoding=UTF-8";

    String DATASOURCE_USER = "root";

    String DATASOURCE_PASSWORD = "123456";

    String DATASOURCE_DRIVER = "com.mysql.jdbc.Driver";
}

业务逻辑层:

点餐餐桌设计代码片段:DinnerTableService.java

@Service
public class DinnerTableService { @Inject
private DinnerTableDao dao ; public int add(DinnerTable dt) {
return dao.insert(dt); } public int delete(Integer id) {
return dao.deleteById(id); } public int update(DinnerTable dt) {
return dao.update(dt); } public List<DinnerTable> query(DinnerTable dt) {
return dao.select(dt);
} public List<DinnerTable> query() {
return dao.select();
} public DinnerTable changeState(Integer id) {
DinnerTable var1 = new DinnerTable();
var1.setId(id);
DinnerTable table = dao.select(var1) == null ? null : dao.select(var1).get(0);
Byte status = table.getTableStatus();
if (status == 0) {
status = 1;
Date date = new Date();
table.setOrderDate(date);
} else if (status == 1) {
status = 0;
table.setOrderDate(null);
}
table.setTableStatus(status);
dao.update(table);
return table;
} public DinnerTable findById(Integer id) {
DinnerTable var1 = new DinnerTable();
var1.setId(id);
DinnerTable table = dao.select(var1) == null ? null : dao.select(var1).get(0);
return table;
} public int quitTable(Integer id) {
DinnerTable var1 = new DinnerTable();
var1.setId(id);
var1.setTableStatus(Byte.valueOf("0"));
var1.setOrderDate(null);
int temp = dao.update(var1);
return temp;
} }

菜品信息设计代码片段:FoodService.java

@Service
public class FoodService { @Inject
private FoodDao dao; public int delete(Integer id) {
return dao.deleteById(id); } public int update(Food food) {
return dao.update(food);
} public List<Food> query() {
return dao.select();
} public List<Food> query(Food food) {
return dao.select(food);
} public List<Food> findByType(Integer type) { Food var1 = new Food();
var1.setFoodType_id(new FoodType().initId(type));
return dao.select(var1);
} public int add(Food food) {
return dao.insert(food); } public Food findById(Integer id) {
Food var1 = new Food();
var1.setId(id);
List<Food> list = query(var1);
return list == null ? null : list.get(0);
} public PageInfo getAll(int page, int pageSize,String where, Serializable args) {
return dao.selectToPage(page, pageSize,where,args);
} }

食物分类设计代码片段:

@Service
public class FoodTypeService { @Inject
private FoodTypeDao dao; public int add(FoodType foodType) {
return dao.insert(foodType); } public int update(FoodType foodType) {
return dao.update(foodType); } public int delete(int id) {
return dao.deleteById(id);
} public FoodType findById(Integer id) {
FoodType var1 = new FoodType();
var1.setId(id);
List<FoodType> list = dao.select(var1);
return list == null ? null : list.get(0);
} public List<FoodType> query() {
return dao.select();
} public List<FoodType> query(FoodType foodType) {
return dao.select(foodType);
} public Integer getFirstType() {
List<FoodType> list = query();
return list == null ? null : list.get(0).getId();
} }

选菜并加入餐车完成下单逻辑实现:

OrderDetailService.java

@Service
public class OrderDetailService { @Inject
private OrderDetialDao dao; public int add(OrderDetail od) {
return dao.insert(od); } public List<OrderDetail> query() {
return dao.select();
} public List<OrderDetail> findByOrderid(Integer id) {
return dao.select("orderid = ?",id);
} }

OrdersService.java

@Service
public class OrdersService { @Inject
private OrdersDao dao; public int update(Orders orders) {
return dao.update(orders); } public List<Orders> query() {
return dao.select(new Orders());
} public int add(Orders orders) {
return dao.insert(orders); } public int getCount() {
return getAll(1,1,null,null).getTotalRows();
} public PageInfo getAll(int page, int pageSize, String where, Serializable args) {
return dao.selectToPage(page,pageSize,where,args);
} public List<Orders> query(Orders orders) {
return dao.select(orders);
}
}

管理员登陆注册功能逻辑代码:

OrdersService.java


@Service
public class UserService { @Inject
private UserDao userDao; /**
* 验证邮箱是否存在
* 存在 --> true
*
* @param email
* @return
*/
public boolean checkEmail(String email) {
User user = new User();
user.setEmail(email);
List<User> select = userDao.select(user);
return CollectionUtil.isNotEmpty(select);
} public User login(String email, String password) {
User user = new User();
user.setEmail(email);
user.setPassword(password);
List<User> select = userDao.select(user);
return CollectionUtil.isNotEmpty(select) ? select.get(0) : null;
} public int save(User user){
return userDao.insert(user);
}
}

5、项目数据库详细设计

food食物信息表:



foodtype食物分类信息表:



dinnertable食堂餐桌信息表:



orderdetails和orders订单信息表:





user用户信息表

7、项目部分功能截图

JAVA WEB期末项目第二阶段成果的更多相关文章

  1. Java web期末项目第一阶段成果发表

    摘要 我们做的系统是一个基于Java web与MySQL的食堂订餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 我们的第一阶段主要完成以下三件事: 完成项目的需求分析 完成项目的领域逻辑(domai ...

  2. JAVA Web期末项目第三阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂点餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 项目的测试 在系统部署到云服务器之前,已经在本机上进行了部署测试,通过mvn打包生成war文 ...

  3. IDEA Java Web(Spring)项目从创建到打包(war)

    创建Maven管理的Java Web应用 创建新项目,"create new project",左侧类型选择"maven",右侧上方选择自己的SDK,点击&qu ...

  4. docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序

    一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...

  5. 【转】IntelliJ IDEA 创建 hello world Java web Maven项目

    学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行的.然后我就示范一下,如何使用这个IntelliJ ...

  6. IntelliJ IDEA 创建 hello world Java web Maven项目从头到尾都有图有真相2017版本

    学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行的.然后我就示范一下,如何使用这个IntelliJ ...

  7. 学生信息的添加 Java web简单项目初试(修改)

    错误原因: 1.Java web 的Servlet类没有配置好,并且缺少一个 Dao类(Date Access Object通常用于操作数据库的). 2.代码的某些名称错误,导致数据库数据存储错误. ...

  8. 第二次正式java web开发项目的总结(回收站恢复)

    都说互联网行业加班很是厉害,记得前不久网上还晒出了几个大城市互联网行业的加班排名调查,但是我们公司,或者说我们项目组倒是非常的例外,进公司也差不多半年了,才仅仅上个月有一个周六加过一天班而已. 不过好 ...

  9. 第一次正式java web开发项目的总结

    去年下半年到现在,因为公司人员流动,也有好几个新进的员工分给我来带领,也有刚从学校出来的,在和他们交流的过程中,不由的想起自己刚刚进入这行的一些感想. 记得自己当初写过一篇总结的,我想这些对于刚出校门 ...

随机推荐

  1. PAT Advanced 1059 Prime Factors (25) [素数表的建⽴]

    题目 Given any positive integer N, you are supposed to find all of its prime factors, and write them i ...

  2. 自动按键的Sendkeys工具的下载和使用

    大家好! 下面介绍一款自动按键的小工具:Sendkeys 下载地址 Sendkeys.rar 按键脚本的书写规则如下: 启动本工具后,在工具中打开一个脚本文件,然后在工具中按下Ctrl+A全选所有脚本 ...

  3. 关于UDP通信的参考目录

    1.IP头,TCP头,UDP头,MAC帧头定义 2.深入理解TCP/UDP通信原理 其内部有提到关于wireshark抓包分析工具的使用 3.udp通讯中的connect()和bind()函数 其中有 ...

  4. LeetCode No.151,152,153

    No.151 ReverseWords 翻转字符串里的单词 题目 给定一个字符串,逐个翻转字符串中的每个单词. 示例 输入: "the sky is blue" 输出: " ...

  5. SaltStack schedule功能

    1.确保计划中没有作业 salt.states.schedule.absent(name, **kwargs) 2.确保在计划中禁用的作业 salt.states.schedule.disabled( ...

  6. Kubernetes 问题定位技巧:分析 ExitCode

    使用 kubectl describe pod 查看异常的 pod 的状态,在容器列表里看 State 字段,其中 ExitCode 即程序退出时的状态码,正常退出时为0.如果不为0,表示异常退出,我 ...

  7. [CTS2019]无处安放(提交答案)

    由于蒟蒻太菜没报上CTS,只能在家打VP. 感觉这题挺有意思的,5h中有3h在玩这题,获得74分的“好”成绩. 说说我的做法吧: subtask1~3:手玩,不知道为什么sub2我只能玩9分,但9和1 ...

  8. Okhttp教程 (1)

    1. 在build.gradle里引入okhttp库 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testComp ...

  9. ddt-python测试数据驱动工具(转载)

    背景 python 的unittest 没有自带数据驱动功能. 所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成. DDT是 “Data-Driven Tests”的缩写 ...

  10. Java中Date类型详解

    一.Date类型的初始化 1. Date(int year, int month, int date); 直接写入年份是得不到正确的结果的. 因为java中Date是从1900年开始算的,所以前面的第 ...