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…

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

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

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;不妨展开计算下显存占用&…

给类设置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…

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

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

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包…

AI办公自动化:批量根据Excel表格内容制作Word文档

工作任务&#xff1a;Excel表格中有大量文本&#xff0c;根据这些文本自动生成word文档 在chatgpt中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;写一个Python脚本&#xff0c;具体步骤如下&#xff1a; 读取Excel文件&#xff1a;"F:\AI自媒体内容\AI视…

[leetcode]将二叉搜索树转化为排序的双向链表

. - 力扣&#xff08;LeetCode&#xff09; /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node() {}Node(int _val) {val _val;left NULL;right NULL;}Node(int _val, Node* _left, Node* _right) {val _val;left _left;right _rig…

目标检测数据集 - 零售食品LOGO检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;零售食品 LOGO 检测数据集&#xff0c;真实零售食品 LOGO 高质量商品图片数据&#xff0c;数据集含常见零售食品 LOGO 图片&#xff0c;包括饮料类、酒类、调味品类、膨化饼干类、巧克力类、常见零食类等等。数据集类别丰富&#xff0c;标注标签包含 150…

DeepSORT(目标跟踪算法)中卡尔曼增益的理解

DeepSORT&#xff08;目标跟踪算法&#xff09;中卡尔曼增益的理解 flyfish 先用最简单的例子来理解卡尔曼增益 公式 (1) 首先&#xff0c;通过多次测量一个物理量&#xff0c;并使用取平均值的方式来计算其真实值&#xff1a; x ^ k 1 k ( z 1 z 2 ⋯ z k ) \hat{x}_…

python-基础篇-函数-在py中的长相

文章目录 整体长相长相要求 整体长相 怎么自定义函数&#xff1f; 要知道怎么定义函数&#xff0c;就要知道函数的组成部分是怎样的。 def 函数名(参数1&#xff0c;参数2....参数n):函数体return 语句这就是 Python 函数的组成部分。 长相要求 所以自定义函数&#xff0c…

父亲节:我要做爸爸的健康监督员

父亲节将至&#xff0c;总想着能为爸爸做些什么&#xff0c;来表达我们的感激与关爱。在这个特殊的日子里&#xff0c;成为爸爸的健康监督员&#xff0c;用华为 Watch 4 的智慧健康功能&#xff0c;任何时刻都可以关注爸爸的健康状况&#xff0c;放心又安心了。 用一键微体检…

使用 python 将 Markdown 文件转换为 ppt演示文稿

在这篇博客中&#xff0c;我们将展示如何使用 wxPython 创建一个简单的图形用户界面 (GUI)&#xff0c;以将 Markdown 文件转换为 PowerPoint 演示文稿。我们将利用 markdown2 模块将 Markdown 转换为 HTML&#xff0c;并使用 python-pptx 模块将 HTML 内容转换为 PowerPoint 幻…