JAVA WEB期末项目第二阶段成果
我们做的系统是一个基于Java web与MySQL的食堂订餐系统
班级: 计科二班
小组成员:李鉴宣、袁超
1、开发环境
- 开发编辑器使用:Visual Studio Code
- 数据库使用:MySQL8.0
- 项目打包工具:maven3以上
- 项目本地部署测试:Tomcat8以上
- 在开发上使用了一个Jleopard-MVC 基于Servlet 3.1改造的,servlet快速开发脚手架详细用法请参考:
https://github.com/chg122345/jleopard
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期末项目第二阶段成果的更多相关文章
- Java web期末项目第一阶段成果发表
摘要 我们做的系统是一个基于Java web与MySQL的食堂订餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 我们的第一阶段主要完成以下三件事: 完成项目的需求分析 完成项目的领域逻辑(domai ...
- JAVA Web期末项目第三阶段成果
我们做的系统是一个基于Java web与MySQL的食堂点餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 项目的测试 在系统部署到云服务器之前,已经在本机上进行了部署测试,通过mvn打包生成war文 ...
- IDEA Java Web(Spring)项目从创建到打包(war)
创建Maven管理的Java Web应用 创建新项目,"create new project",左侧类型选择"maven",右侧上方选择自己的SDK,点击&qu ...
- docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...
- 【转】IntelliJ IDEA 创建 hello world Java web Maven项目
学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行的.然后我就示范一下,如何使用这个IntelliJ ...
- IntelliJ IDEA 创建 hello world Java web Maven项目从头到尾都有图有真相2017版本
学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行的.然后我就示范一下,如何使用这个IntelliJ ...
- 学生信息的添加 Java web简单项目初试(修改)
错误原因: 1.Java web 的Servlet类没有配置好,并且缺少一个 Dao类(Date Access Object通常用于操作数据库的). 2.代码的某些名称错误,导致数据库数据存储错误. ...
- 第二次正式java web开发项目的总结(回收站恢复)
都说互联网行业加班很是厉害,记得前不久网上还晒出了几个大城市互联网行业的加班排名调查,但是我们公司,或者说我们项目组倒是非常的例外,进公司也差不多半年了,才仅仅上个月有一个周六加过一天班而已. 不过好 ...
- 第一次正式java web开发项目的总结
去年下半年到现在,因为公司人员流动,也有好几个新进的员工分给我来带领,也有刚从学校出来的,在和他们交流的过程中,不由的想起自己刚刚进入这行的一些感想. 记得自己当初写过一篇总结的,我想这些对于刚出校门 ...
随机推荐
- UML-操作契约总结
1.操作契约属于什么? 属于用例模型 如图: 2.操作契约在那个阶段引入? 在细化阶段,并非初始阶段. 3.哪些需要写操作契约? 1).最复杂的系统操作 2).最微妙的系统操作
- 关于Java自动拆箱装箱中的缓存问题
package cn.zhang.test; /** * 测试自动装箱拆箱 * 自动装箱:基本类型自动转为包装类对象 * 自动拆箱:包装类对象自动转化为基本数据类型 * * * /*缓存问题*/ /* ...
- blocking(非阻塞)回调函数
回调函数不会造成阻塞 function loop() { setTimeout(loop, 0) } loop 死循环 while(true)
- 一个理解基本RCNN的简单例子
对于一个最简单的RNN网络https://github.com/Teaonly/beginlearning/ """Minimal character-level Van ...
- 4.15 每周作业 —— 简单DP
免费馅饼 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- dubbo的灰度发布
1,什么是灰度发布 当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用. 可以按照以下的步骤进行版本迁移: 在低压力时间段,先升级一半提供者为新版本 再将所有消费者升级为 ...
- yuyuecms 1.2文件删除漏洞
www.yuyue-cms.com yuyuecms版本1.2 管理员/索引控制器删除方法中的漏洞 请参阅catfishcmsCatfish isPost静态方法 如果调用后验证静态方法 如果为tru ...
- 爬虫基本库request使用—爬取猫眼电影信息
使用request库和正则表达式爬取猫眼电影信息. 1.爬取目标 猫眼电影TOP100的电影名称,时间,评分,等信息,将结果以文件存储. 2.准备工作 安装request库. 3.代码实现 impor ...
- Sqlite教程(1) SQLiteOpenHelper
首先,创建DbHelper对象,继承SQLiteOpenHelper. Configuration是自行创建的工具类,里面都是App的一些环境设置. public class DbHelper ext ...
- php对比二个不同的二维数组
$diff_data = array_filter($data1, function($v) use ($data2) { return ! in_array($v, $data2);});