我们做的系统是一个基于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. beta函数与置信度估计

    可信度的估计 二项分布中的\(p\) 服从Beta分布 $ {\rm beta}(\alpha, \beta)$, 密度函数 \(\frac1{B(\alpha, \beta)} x^{\alpha- ...

  2. Activiti工作流的入门介绍

    一.activiti介绍 Activiti5是一个 业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执行流程语言框架.Activiti基于Ap ...

  3. ZJNU 2135 - 小智的宝可梦

    因为成环 所以可以枚举第1只与第n只喂的次数 然后第1只和第2只的次数就固定了,以此类推,则所有宝可梦喂的次数都固定了 最后处理完检查是否全为0,不是则进行下一次枚举,是则直接输出Yes 如果所有枚举 ...

  4. python3.6内置模块——random详解

    python内置模块random是用来生成随机数的,在许多场合都能应用到,算是比较常见的一种模块吧,下面详细介绍其具体用法. 基本用法 随机生成浮点数:有两种,一种没有参数,默认是0~1,另一种可以指 ...

  5. MySQL笔记(二)——查询数据

    数据库管理系统的一个最重要的功能就是数据查询,数据查询不应只是简单的查询数据库中存储的数据,还应该是根据需要对数据进行筛选,以及确定数据以什么样的格式显示.本篇笔记主要介绍单表查询,子查询,连接查询. ...

  6. Linux之程序的开始和结束

    1.main函数由谁来调用 (1).编译链接时的引导代码. 操作系统下的应用程序其实是在main函数执行前也需要先执行一段引导代码才能去执行main函数,我们写应用程序时不用考虑引导代码的问题,编译链 ...

  7. 关于本人:-D(必读)

    关于本人 本人目前从事iOS开发,但心中也有一个全栈的梦想,希望与大家共勉! 关于博客内容 自己会不时分享一些iOS方面的技术点.总结的一些经验及工具类.还有学习其他语言过程中的笔记.技术.总结及心得 ...

  8. QMessageBox按钮自定义文字

    msgbox = QMessageBox()msgbox.setStandardButtons(QMessageBox.Yes|QMessageBox.No)msgbox.button(QMessag ...

  9. sqlalchemy 入门

    ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上. 在Python中,最有名的ORM框架是SQLAlchemy. # 导入: from sqlalche ...

  10. 二分查找(python)

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/4/29 9:11 # @Author : Jackendoff # @Sit ...