我们做的系统是一个基于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. slideshare文档下载

    if [ x"$1" = x1 ]; then for i in {1..46}; do url_i="https://image.slidesharecdn.com/b ...

  2. 在scala命令行中加入类库

    在scala命令行中加入scala的类库. scala -toolcp $HOME/.ivy2/cache/org.scalanlp/breeze_2.12/jars/breeze_2.12-0.13 ...

  3. 跨站脚本(XSS)攻击

    https://blog.csdn.net/extremebingo/article/details/81176394

  4. NGDC|BIGD

    生命组学 生命起源经过复杂演化诞生了大量生物体及其基因组. 现今NCBI最大的基因组: 植物:糖松27.6G 动物:墨西哥蝾螈32.4G 大数据能做什么? 大数据时代如同大航海时代一样,需要具有与时代 ...

  5. Python程序中的进程操作--—--开启多进程

    Python程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ...

  6. Linux分区挂载

    Liunx采用树形的文件管理系统,也就是在Linux系统中,可以说已经没有分区的概念了.分区在Linux和其他设备一样都只是一个文件.要使用一个分区必须把它加载到文件系统中.这可能难于理解,继续往下看 ...

  7. 让几个横向排列的浮动子div居中显示的方法

    div设置成float之后,就无法使子div居中显示了,那么如何让几个横向排列的浮动的div居中显示呢,下面有个不错的方法,希望对大家有所帮助 div设置成float之后,在父div中设置text-a ...

  8. redhat6.5 升级内核

    1.导入key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装elrepo的yum源 rpm -Uvh https:// ...

  9. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第九天】(商品详情页面实现)

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

  10. P1010 幂次方 P1022 计算器的改良

    P1010 幂次方 一.题目 https://www.luogu.org/problemnew/show/P1010 二.代码 #include<bits/stdc++.h> using ...