Java课程设计:基于Javaweb的校园订餐系统

文章目录

  • 一、项目介绍
  • 二、项目技术栈
  • 三、核心代码
  • 四、项目展示
  • 五、源码获取

一、项目介绍

在当今互联网高速发展的时代,大学校园内的学生生活正在发生着翻天覆地的变化。其中,校园内的餐饮服务无疑是亟需改革和创新的领域之一。

传统的校园食堂模式,往往存在就餐高峰时段拥挤、菜品选择单一、订餐流程繁琐等诸多问题,严重影响了学生的就餐体验。为了解决这一痛点,迫切需要开发一套功能全面、操作简便的校园订餐系统。

二、项目技术栈

  • 后端:javaweb+jdk+tomcat
  • 前端:jsp+css+js
  • 数据库:mysql

三、核心代码

验证码生产类

public class CheckCode {public String getCheckCode(){Random random = new Random();String sRand="";for (int i=0;i<4;i++){String rand=String.valueOf(random.nextInt(10));sRand+=rand;}return sRand;}
}

管理员登录

public int adminLogin(String username,String md5password,String password,String useros,String loginip){String sql = "select * from admin where username = '"+username+"' and isuse='1'";String sql2 = "insert into adminlog(username,password,logintime,loginip,useros,ok) values('"+username+"','"+md5password+"','"+date+"','"+loginip+"','"+useros+"','true')";String sql3 = "insert into adminlog(username,password,logintime,loginip,useros,ok) values('"+username+"','"+password+"','"+date+"','"+loginip+"','"+useros+"','false')";String sql4 = "update admin set logintimes = logintimes+1 where username = '"+username+"' ";DBO dbo = new DBO();String pwd;dbo.open();try{rs = dbo.executeQuery(sql);if(rs.next()){pwd = rs.getString("password");if(pwd.trim().equals(md5password)){dbo.executeUpdate(sql2);dbo.executeUpdate(sql4);return Constant.SUCCESS;}else{dbo.executeUpdate(sql3);return Constant.PASSWORD_ERROR;}}else{dbo.executeUpdate(sql3);return Constant.NAME_ERROR;}			}catch(Exception e){e.printStackTrace();return Constant.SYSTEM_ERROR;}finally{dbo.close();}	}

查询管理员信息

public List getAdminInfo(String username){String sql = "select * from admin where username='"+username+"' ";DBO dbo = new DBO();dbo.open();list = new ArrayList();try{rs = dbo.executeQuery(sql);rs.next();list.add(rs.getString("username"));list.add(rs.getInt("flag"));list.add(rs.getInt("logintimes"));list.add(date);list.add(rs.getString("quanxian"));return list;}catch(Exception e){e.printStackTrace();return list;}finally{dbo.close();}}

查询信息

//分页查询所有个人会员public void setEVERYPAGENUM(int EVERYPAGENUM){this.EVERYPAGENUM=EVERYPAGENUM;}public int getMessageCount() { //得到信息总数DBO dbo=new DBO();dbo.open();try { rs = dbo.executeQuery(sql);rs.next();count = rs.getInt(1);return count;} catch (SQLException ex) {ex.printStackTrace();return -1;} finally {dbo.close();}}public int getPageCount() { //得到共多少页(根据每页要显示几条信息)if (count % EVERYPAGENUM == 0) {return count / EVERYPAGENUM;} else {return count / EVERYPAGENUM + 1;}}public List getMessage(int page) { //得到每页要显示的信息DBO dbo=new DBO();dbo.open();List list = new ArrayList();try {rs = dbo.executeQuery(sql2);for (int i = 0; i < (page - 1) * EVERYPAGENUM; i++) {rs.next();}for (int t = 0; t < EVERYPAGENUM; t++) {if (rs.next()) {qq++;List list2=new ArrayList();list2.add(rs.getInt("id"));list2.add(rs.getString("username"));list2.add(rs.getString("regtime"));list2.add(rs.getString("ifuse"));list2.add(rs.getString("logintimes"));list2.add(rs.getString("lasttime"));list2.add(rs.getString("lastip"));list.add(list2);} else {break; //减少空循环的时间}}return list;} catch (SQLException ex) {ex.printStackTrace();return null;} finally {dbo.close();}}

企业会员

///所有企业会员public int getMessageCountCO() { //得到信息总数DBO dbo=new DBO();dbo.open();try { rs = dbo.executeQuery("select count(*) from member where type='co'");rs.next();count = rs.getInt(1);return count;} catch (SQLException ex) {ex.printStackTrace();return -1;} finally {dbo.close();}}public List getMessageCO(int page) { //得到每页要显示的信息DBO dbo=new DBO();dbo.open();List list = new ArrayList();try {rs = dbo.executeQuery("select * from member where type='co' order by id desc ");for (int i = 0; i < (page - 1) * EVERYPAGENUM; i++) {rs.next();}for (int t = 0; t < EVERYPAGENUM; t++) {if (rs.next()) {qq++;List list2=new ArrayList();list2.add(rs.getInt("id"));list2.add(rs.getString("username"));list2.add(rs.getString("regtime"));list2.add(rs.getString("ifuse"));list2.add(rs.getString("logintimes"));list2.add(rs.getString("lasttime"));list2.add(rs.getString("lastip"));list.add(list2);} else {break; //减少空循环的时间}}return list;} catch (SQLException ex) {ex.printStackTrace();return null;} finally {dbo.close();}}

数据库连接类

public class DBO {private Connection conn;private Statement stmt;private DataSource ds;public DBO(){}/**打开数据库*/public void open() {try {Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost/wsdc?useUnicode=true&characterEncoding=gb2312","root","root");//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");           //conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=xwfb","sa","123");stmt=conn.createStatement();System.out.println("打开数据库连接");} catch (Exception ex) {System.err.println("打开数据库时出错: " + ex.getMessage());}}/**关闭数据库,将连接返还给连接池*/public void close() {try {//	connMgr.freeConnection("java", conn);conn.close();System.out.println ("释放连接");} catch (SQLException ex) {System.err.println("返还连接池出错: " + ex.getMessage());}}/**执行查询*/public ResultSet executeQuery(String sql) throws SQLException{ResultSet rs = null;rs = stmt.executeQuery(sql);System.out.println ("执行查询");return rs;}/**执行增删改*/public int executeUpdate(String sql) throws SQLException{int ret = 0;ret = stmt.executeUpdate(sql);System.out.println ("执行增删改");return ret;}/**将SQL语句加入到批处理*/public void addBatch(String sql) throws SQLException {stmt.addBatch(sql);}/**执行批处理*/public int [] executeBatch() throws SQLException {boolean isAuto=conn.getAutoCommit();conn.setAutoCommit(false);int [] updateCounts = stmt.executeBatch();//		conn.commit();//		conn.setAutoCommit(isAuto);//conn.setAutoCommit(true);return updateCounts;}public boolean getAutoCommit() throws SQLException{return conn.getAutoCommit();}public void setAutoCommit(boolean auto)  throws SQLException {conn.setAutoCommit(auto);}public void commit() throws SQLException {conn.commit();
//		this.close();}public void rollBack() throws SQLException {conn.rollback();
//		this.close();}	
}

四、项目展示

登录页面
在这里插入图片描述

项目主页
在这里插入图片描述
留言管理
在这里插入图片描述
在这里插入图片描述

后台管理
在这里插入图片描述

五、源码获取

因为页面与源码太多了,所以页面与源码只展示了一部分,完整源码已经打包了,点击下面蓝色链接获取!

点我获取源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DELL服务器插入新磁盘、创建虚拟磁盘、挂载磁盘步骤

文章目录 一、磁盘清理&#xff08;可选&#xff0c;针对新硬盘是Foreign状态&#xff09;1、进入VD Mgmt2、清理新硬盘配置 二、创建虚拟磁盘1、进入Device Settings2、创建虚拟磁盘 三、挂载磁盘到系统1、分区磁盘&#xff08;注意实际磁盘的名称&#xff09;2、格式化分区3、…

Java web应用性能分析之【prometheus+Grafana监控springboot服务和服务器监控】

Java web应用性能分析之【java进程问题分析概叙】-CSDN博客 Java web应用性能分析之【java进程问题分析工具】-CSDN博客 Java web应用性能分析之【jvisualvm远程连接云服务器】-CSDN博客 Java web应用性能分析之【java进程问题分析定位】-CSDN博客 Java web应用性能分析之【…

【数学代码】幂

Hello!大家好&#xff0c;我是学霸小羊&#xff0c;今天来讲讲幂。 求几个相同因数的积的运算&#xff0c;叫做乘方&#xff0c;乘方的结果叫做幂。 a^n&#xff0c;读作 “ a的n次方 ” 或 “ a的n次方幂”&#xff0c;a叫做底数&#xff0c;n叫做指数。 对于底数、指数和幂…

Stm32超声波测距实验

一.任务需求 1. 采用stm32F103和HC-SR04超声波模块&#xff0c; 使用标准库或HAL库 定时器中断&#xff0c;完成1或2路的超声波障碍物测距功能。 2. 当前智能汽车上一般配置有12路超声波雷达&#xff0c;这些专用超声波雷达内置了MCU&#xff0c;直接输出数字化的测距结果&am…

鸿蒙ArkTs 下载监听完成、进度 DownloadUtils工具类

import request from ohos.request; import fs from ohos.file.fs; import { BusinessError } from kit.BasicServicesKit; import { common, Want } from kit.AbilityKit;export class DownloadUtils{/*** 下载文件* param mContext* param url* param destFileDir* param fi…

【QT Creator软件】解决中文乱码问题

QT Creator软件解决中文乱码问题 问题描述&#xff1a;Qtcreator安装好后打印中文在控制台输出乱码 在网上也查找了修改编辑器的默认编码为UTF-8&#xff0c;但是仍然没有任何作用&#xff0c;于是有了以下的解决方案 原因剖析&#xff1a;因为项目的编码与控制台的编码不一致…

LINUX中使用DT_MACHINE_START/MACHINE_START宏

LINUX中使用DT_MACHINE_START/MACHINE_START宏 DT_MACHINE_START宏 LINUX中用DT_MACHINE_START/MACHINE_START定义的MACH,并给出定义的各个成员函数在初始化过程中被调用的时机 比如,kernel/arch/arm/mach-vexpress/v2m.c: // SPDX-License-Identifier: GPL-2.0 #include…

Windows10安装配置Docker客户端和WSL2与Hyper-V虚拟机

一、需求说明 需要在Windows系统中安装配置Docker的客户端,方便直接管理配置docker镜像容器内容。 二、Windows10安装Docker客户端步骤 2.1、下载安装Docker客户端 对于Windows 10以下的用户,推荐使用Docker Toolbox Windows安装文件:http://mirrors.aliyun.com/docker-…

16.大模型分布式训练框架 Microsoft DeepSpeed

微调、预训练显存对比占用 预训练LLaMA2-7B模型需要多少显存&#xff1f; 假设以bf16混合精度预训练 LLaMA2-7B模型&#xff0c;需要近120GB显存。即使A100/H100&#xff08;80GB&#xff09;单卡也无法支持。 为何比 QLoRA多了100GB&#xff1f;不妨展开计算下显存占用&…

JAVA集合常见知识点总结

JAVA集合知识点总结 说说 List, Set, Queue, Map 四者的区别&#xff1f; List &#xff1a;存储的元素是有序的、可重复的。Set : 存储的元素不可重复的。Queue : 按特定的排队规则来确定先后顺序&#xff0c;存储的元素是有序的、可重复的。Map : 使用键值对&#xff08;ke…

给类设置serialVersionUID

第一步打开idea设置窗口&#xff08;setting窗口默认快捷键CtrlAltS&#xff09; 第二步搜索找到Inspections 第三步勾选主窗口中Java->Serializations issues->下的Serializable class without serialVersionUID’项 &#xff0c;并点击“OK”确认 第四步鼠标选中要加…

DearLicy主题 | 小众化小清新风格的博客主题源码 | Typecho主题模版

DearLicy主题&#xff0c;一款小众化小清新风格的博客主题 主题支持Typecho所支持的所有版本PHP 简约、小众、优雅 安装教程 1.将主题上传至/usr/themes/文件夹下解压 2.后台进行启用 3.访问前台查看效果 源码下载&#xff1a;https://download.csdn.net/download/m0_6604…

【名词解释】Unity中的3D物理系统:碰撞体

Unity中的3D物理系统中的碰撞体&#xff08;Collider&#xff09;是用于检测和响应物理碰撞的组件。以下是一些基本的名词解释和使用方法的代码示例&#xff1a; 名词解释&#xff1a; Collider&#xff1a;用于检测碰撞的组件&#xff0c;可以是球形、盒形、胶囊形或其他形状…

DocGraph相关概念

结合简化版的直观性和专业版的深度&#xff0c;我们可以得到一个既易于理解又包含专业细节的DocGraph概念讲解。 DocGraph概述&#xff08;简化版&#xff09; 想象DocGraph就像是文章信息的地图。它通过拆分文档、识别关键词、分析关系&#xff0c;并最终以图形方式呈现这些…

热门开源项目ChatTTS: 国内语音技术突破,实现弯道超车

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

路由传参的方法?

1. 查询参数&#xff08;query&#xff09; 查询参数通常附加在URL的查询字符串中&#xff0c;例如&#xff1a;/user?id123。 首先&#xff0c;你需要在路由定义中不需要做特别设置。然后&#xff0c;在组件中&#xff0c;你可以通过$route.query对象来获取查询参数。 路由…

PHP入门教程2:控制结构和函数

PHP专栏&#xff08;第二篇&#xff09;&#xff1a;控制结构和函数 在上一篇文章中&#xff0c;我们学习了PHP的基础知识和基本语法。接下来&#xff0c;我们将深入探讨PHP的控制结构和函数&#xff0c;这是编写复杂程序的基础。本文将包含以下几个部分&#xff1a; 条件语句…

python简单练习案例-石头剪刀布小游戏

&#x1f308;所属专栏&#xff1a;【python】 ✨作者主页&#xff1a; Mr.Zwq ✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01;…

IDEA SpringBoot整合Mybatis(保姆级教程,超详细!!!)

目录 1. 简介 2. 创建SpringBoot项目 3. Maven依赖引入 4. 创建mapper文件夹 5. 数据源和Mybatis配置 6. 工程启动类配置 7. 连接数据库和创建测试表 8. Mapper接口和XML自动生成 9. 接口测试 1. 简介 本博客将详细介绍在IDEA中&#xff0c;如何整合SpringBoot与Myba…

基于SSM+Jsp的在线教育资源管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…