简单的订单系统

article/2025/7/13 19:09:30

目录

一、数据库方面

二、jdbc配置文件

三、JDBC工具类

三、Users类

四、功能实现类

五、运行结果


一、数据库方面

USE foodmenu;
DROP TABLE IF EXISTS menu7;
CREATE TABLE menu7(num INT PRIMARY KEY,TypeDishes VARCHAR(255))CHARSET=utf8;
INSERT INTO menu7(num,TypeDishes) VALUES(1,'炒饭'),(2,'盖饭'),(3,'面食'),(4,'饮料');
USE foodmenu;
DROP TABLE IF EXISTS menu8;
CREATE TABLE menu8(num INT,Dishes VARCHAR(255)
)CHARSET=utf8;
INSERT INTO menu8(num,Dishes) VALUES(101,'蛋炒饭'),(102,'青椒炒肉丝'),(103,'鱼香肉丝');

USE foodmenu;
DROP TABLE IF EXISTS menu9;
CREATE TABLE menu9(num INT ,Dishes VARCHAR(255)
)CHARSET=utf8;
INSERT INTO menu9(num,Dishes) VALUES(111,'宫保鸡丁'),(112,'土豆肉丝'),(113,'怪味鸭');
USE foodmenu;
DROP TABLE IF EXISTS menu10;
CREATE TABLE menu10(num INT ,Dishes VARCHAR(255)
)CHARSET=utf8;
INSERT INTO menu10(num,Dishes) VALUES(121,'重庆小面'),(122,'牛肉面'),(123,'杂酱面');
USE foodmenu;
DROP TABLE IF EXISTS menu11;
CREATE TABLE menu11(num INT ,Dishes VARCHAR(255)
)CHARSET=utf8;
INSERT INTO menu11(num,Dishes) VALUES(131,'元气森林'),(132,'冰红茶'),(133,'可乐');

二、jdbc配置文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/foodmenu
user=root
password=123456

三、JDBC工具类

package com.xh.jdbc.menu2;import java.sql.*;
import java.util.ResourceBundle;/*** JDBC工具类*/
public class DBUtil {//静态变量,类加载时执行//属性资源文件绑定private static ResourceBundle bundle = ResourceBundle.getBundle("resources.jdbc1");//根据属性配置文件key获取valueprivate static String driver = bundle.getString("driver");private static String url = bundle.getString("url");private static String user = bundle.getString("user");private static String password = bundle.getString("password");static {//注册驱动,只需要注册一次就够了,放在静态代码块中,DBUtil类加载时执行try {Class.forName(driver);} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 获取数据库连接对象* @return conn 连接对象* @throws SQLException*/public static Connection getConnection()throws SQLException{Connection conn = DriverManager.getConnection(url,user,password);return conn;}/*** 释放资源* @param conn 连接对象* @param ps 数据库操作对象* @param rs 结果集对象*/public static void close(Connection conn, Statement ps, ResultSet rs){if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (ps != null) {try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}
}

三、Users类

package com.mcr.jdbc.menu.tests;
/*用户类*/
public class Users {private String tel;//手机号码private String name;//用户名private String password;//用户密码public Users() {}public Users(String tel, String name, String password) {this.tel = tel;this.name = name;this.password = password;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

四、功能实现类

package com.xh.jdbc.tests;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.*;
import java.util.*;//订单系统
public class MenuSystem {public static void main(String[] args) {ArrayList<Users> users = new ArrayList<>();startMenu(users,new Scanner(System.in));}//首页操作界面public static void startMenu(ArrayList<Users> users,Scanner scanner) {while(true){System.out.println("请输入您需要的操作:1[登录] 2[注册] 3[退出]");int num = scanner.nextInt();switch (num){case 1:login(users,scanner);break;case 2:register(users,scanner);break;case 3:System.out.println("已退出系统!");System.exit(0);default:System.out.println("您输入有误!");}}}//登录public static void login(ArrayList<Users> users,Scanner scanner) {if (users.size() == 0){System.out.println("当前无用户,请注册!");System.out.println("--=已跳转到首页=--");return;}while(true){System.out.println("请输入手机号码:");String tel = scanner.next();Users user = getUserByTel(tel,users);if(user != null){while (true){System.out.println("请输入密码:");String password = scanner.next();if (user.getPassword().equals(password)){System.out.println("欢迎\""+user.getName()+"\"用户登录成功!");operateMenu(user,users,scanner);}else{System.out.println("密码输入错误!");}}}else {System.out.println("当前系统没有该账户用户!");}}}//注册public static void register(ArrayList<Users> users,Scanner scanner) {System.out.println("--=欢迎注册=--");System.out.println("请输入用户名:");String name = scanner.next();String password = "";while (true){System.out.println("请输入密码:");password = scanner.next();System.out.println("请再次输入密码:");String  okPassword = scanner.next();if (password.equals(okPassword)){break;}else {System.out.println("~两次密码不一致,请重新输入~");}}while (true){System.out.println("请输入手机号码:");String tel = scanner.next();if (tel.length() == 11){Users user = new Users(tel,name,password);users.add(user);System.out.println("[注册成功]");System.out.println("您的账号为:"+user.getTel());System.out.println("~已跳转到首页,请登录~");break;}else {System.out.println("输入号码有误!");}}}//操作界面public static void operateMenu(Users user,ArrayList<Users> users,Scanner scanner){System.out.println("请输入您想要的操作:1[销户] 2[查询菜品] 3[注销] 4[点菜]");int num = scanner.nextInt();while(true){switch (num){case 1:users.remove(user);System.out.println("销户成功");startMenu(users,scanner);return;case 2:queryMenu(scanner);operateMenu(user,users,scanner);break;case 3:System.out.println("注销成功!");startMenu(users,scanner);return;case 4:orderMeals(scanner);operateMenu(user,users,scanner);break;default:System.out.println("您输入有误!");}}}//查询菜品public static void queryMenu(Scanner scanner){Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {//1.注册驱动//2.获取连接conn = DBUtil.getConnection();//将自动提交机制修改为手动提交conn.setAutoCommit(false);//开启事务//3.获取预编译的数据库操作对象String sql = "select * from menu7 ";ps = conn.prepareStatement(sql);//4.执行SQL语句rs = ps.executeQuery();//5.处理结果集System.out.println("序号  菜品分类");System.out.println("--------------------");while (rs.next()){System.out.print(" "+rs.getInt("num")+"   ");System.out.print(" "+rs.getString("TypeDishes"));System.out.println();}System.out.println("--------------------");conn.commit();while(true) {System.out.println("请输入菜品分类序号:[5退出]");int num = scanner.nextInt();switch (num) {case 1://炒饭String sql1 = "select num,Dishes from menu8 ";ps = conn.prepareStatement(sql1);rs = ps.executeQuery();System.out.println("序号   菜品");System.out.println("--------------------");while (rs.next()){System.out.print(rs.getInt("num")+"   ");System.out.print(rs.getString("Dishes"));System.out.println();}System.out.println("--------------------");conn.commit();break;case 2://盖饭String sql2 = "select num,Dishes from menu9 ";ps = conn.prepareStatement(sql2);rs = ps.executeQuery();System.out.println("序号   菜品");System.out.println("--------------------");while (rs.next()){System.out.print(rs.getInt("num")+"   ");System.out.print(rs.getString("Dishes"));System.out.println();}System.out.println("--------------------");conn.commit();break;case 3://面食String sql3 = "select num,Dishes from menu10 ";ps = conn.prepareStatement(sql3);rs = ps.executeQuery();System.out.println("序号   菜品");System.out.println("--------------------");while (rs.next()){System.out.print(rs.getInt("num")+"   ");System.out.print(rs.getString("Dishes"));System.out.println();}System.out.println("--------------------");conn.commit();break;case 4://饮料String sql4 = "select num,Dishes from menu11 ";ps = conn.prepareStatement(sql4);rs = ps.executeQuery();System.out.println("序号    菜品");System.out.println("--------------------");while (rs.next()){System.out.print(rs.getInt("num")+"   ");System.out.print(rs.getString("Dishes"));System.out.println();}System.out.println("--------------------");conn.commit();break;case 5:System.out.println("已退出,请订单");return;default:System.out.println("输入有误!");break;}}}catch (Exception e){if (conn != null){try {conn.rollback();} catch (SQLException ex) {ex.printStackTrace();}}e.printStackTrace();}finally {//6.释放资源DBUtil.close(conn,ps,rs);}}//订单public static void orderMeals(Scanner scanner){System.out.println("请输入预定的菜品序号:");int num = scanner.nextInt();System.out.println("订单成功");creatOrderNum();System.out.println("~请继续操作~");}//判断账号是否重复public static Users getUserByTel(String tel,ArrayList<Users> users){for (int i = 0; i < users.size(); i++) {Users user = users.get(i);if(user.getTel().equals(tel)){return user;}}return null;}//生成随机单号public static void creatOrderNum(){while(true){String code ="H";Random r = new Random();for (int i = 0; i < 10; i++) {code += r.nextInt(10);}System.out.println("你的单号是:"+code);break;}}
}

五、运行结果


http://chatgpt.dhexx.cn/article/ryAZQhGa.shtml

相关文章

天翎低代码平台实现的订单管理系统

编者按&#xff1a; 本文 主要介绍了基于天翎低代码平台实现的 订单管理系统以及 优势 &#xff0c;并进一步展现了低代码平台是如何为企业实现订单管理科学化 和 规范业务管理过程。 关键词&#xff1a;低代码平台、订单管理系统 1.订单管理系统是什么&#xff1f; 订单管理系…

初学订单-支付流程(思路)

主要说的是 生成订单的一系列操作 生成订单号---确认支付---生成支付链接--支付流程 支付流程 ---1.获取支付链接 1.1 三方接口&#xff0c;发送数据 ----1.2 返回数据解析&#xff08;包含支付订单id&#xff09;将链接也返回前端 ----2.进行支付 2.1 扫码支付 2.2 支付成…

订单系统的代码实现

面向接口的编程&#xff1a; 面向接口编程(Interface Oriented Programming:OIP)是一种编程思想&#xff0c;接口作为实体抽象出来的一种表现形式&#xff0c;用于抽离内部实现进行外部沟通&#xff0c;最终实现内部变动而不影响外部与其他实现交互&#xff0c;可以理解成按照这…

【码学堂】教师如何在码学堂上组织教学活动?

码学堂简介 码学堂是由贵州师范学院数学与大数据学院研发的智慧教学平台&#xff0c;学生可以自主练习&#xff0c;教师可以组织练习、考试、竞赛、共享题库、共享教学资源&#xff0c;支持判断题、单项选择题、多项选择题、填空题、程序函数题、程序填空题、编程题、主观题8种…

如何在码学堂组织练习、考试、竞赛?

组织练习、考试、竞赛时就是将多个题目组成题目集&#xff0c;然后加入学生组完成。题目集是由多个题目构成的集合&#xff0c;可以理解为组卷、出卷&#xff0c;码学堂上“练习/作业”、“考试”或“竞赛”操作方式一致&#xff0c;故下面以考试为例来说明操作方法。 1 设置题…

如何开发出一款直播APP项目实践篇 -【原理篇】

【 主要模块】 主播端&#xff1a; 把主播实时录制的视频&#xff0c;经过&#xff08;采集、美颜处理、编码&#xff09;推送到服务器服务器&#xff1a; 处理&#xff08;转码、录制、截图、鉴黄&#xff09;后分发给用户播放端播放器&#xff1a; 获取服务器地址&#xff0…

短视频小视频直播app开发定制解决方案

一、直播APP的市场前景 随着智能移动手机端的普及,人们对于线上的娱乐的要求越发感兴趣,很多互联网电商平台也将直播APP作为销售的主战场之一。将线上与线下的方式相结合才能更好的促进企业的发展。当然对于直播APP的开发也是我们需要了解的。相关数据表明,目前直播APP对于…

直播APP开发过程

直播是2016年火爆的产业&#xff0c;看起来很炫&#xff0c;玩起来很方便、很贴近生活&#xff0c;开发一款直播App不仅耗时还非常昂贵&#xff0c;那么&#xff0c;开发一款直播App到底分几步走&#xff1f; 第一步&#xff1a;分解直播App的功能&#xff0c;我们以X客为例 1…

直播app开发必备五步流程

直播app开发搭建是最近几年比较火的技术&#xff0c;本文从技术角度分析一套直播app开发必备的几个流程。 从主播录制视频开始到最后直播间播放&#xff0c;涉及到的流程包括&#xff1a; 音视频采集—>编码和封装—>推流到流媒体服务器—>流媒体服务器播流分发—&g…

金融直播APP方案开发

分享一下英唐众创开发的金融直播APP解决方案。随着视频直播风靡全球&#xff0c;视频直播已成为众多传统行业和互联网行业争夺的“香饽饽”。金融行业当然也不例外&#xff0c;在当今“互联网”的大时代下&#xff0c;金融行业作为走在前沿的产业&#xff0c;不但开辟出互联网金…

如何开发出一款仿映客直播APP项目实践篇 -【原理篇】

前言&#xff1a;每个成功者多是站在巨人的肩膀上&#xff01;在做直播开发时 碰到了很多问题&#xff0c;在收集了许多人博客的基础上做出来了成功的直播项目并做了整理&#xff0c;并在最后奉上我的全部代码。 其中采用博客的博主开篇在此感谢&#xff0c;本着开源分享的精神…

cmd的炫酷玩法教程

在我们看电影的时候&#xff0c;经常看到黑客在电脑是一顿猛如虎的操作。然后电脑上就出现一系列花里胡哨的画面&#xff0c;其实那种画面我们用cmd的一行代码就能搞定。 第一步 按WinR&#xff0c;输入cmd&#xff0c;打开小黑框。 第二部 如果什么属性都不设置&#xff…

一行代码让你伪装成黑客惊艳世人

今天给大家带来一行代码让你伪装成黑客惊艳世人&#xff0c;保证让你成为学校机房最亮的崽 新建一个文本文档&#xff0c;输入tree c: CtrlS保存 重命名修改后缀名为.bat 这就OK了&#xff0c;不知道这个代码你有没有学废了&#xff01;

小bat大装逼(▼へ▼メ)

直接上代码 echo off cls color echo come!!! color 1a color 2b color 3c color 4d color 5e color 6f color 70 tree d: dir /s %0把代码粘贴到一个【文件名.bat】文件中&#xff0c;例如 复制粘贴完成&#xff0c;别忘记【Ctrls】进行保存操作啊。 然后打开就行了。很疯狂…

使用cmd命令行装逼,让命令行滚动起来

使用cmd命令行装逼&#xff0c;让命令行滚动起来 一、滚动cmd二、清理垃圾总结 一、滚动cmd color a扫描当前所有目录 dir /s二、清理垃圾 创建txt文件 echo offdel/f/s/q %systemdrive%\*.tmp del/f/s/q %systemdrive%\*._mp del/f/s/q %systemdrive%\*.logdel/f/s/q %sys…

(六)C语言入门,代码编程,三子棋游戏【300行】【原创】

文章目录 十二篇文章汇总&#xff0c;独家吐大血整理 编译环境 游戏界面 test6.c game.c game.h​​​​​​​ ​​​​​​​ 编译环境 VS2019 游戏界面 test6.c #include <stdio.h>//std standard input output #include <string.h> #include <game…

C语言编程流程

2.5 C语言编程流程 C语言的编程流程 a)解决什么问题 b)怎么解决 c)编写程序 d)分析结果 2. 解决什么问题 &#xff1f; 比如说&#xff1a;我们如何打开、关闭一个计算器呢&#xff1f; 3 那么我们怎么解决呢&#xff1f; 我们可以通过命令行的方式打开、关闭计算器 在DO…

c语言万年历查询程序代码,C语言实现万年历程序的代码分享

C语言实现万年历程序的代码分享 发布时间&#xff1a;2020-04-27 09:55:52 来源&#xff1a;亿速云 阅读&#xff1a;795 作者&#xff1a;小新 今天小编给大家分享的是C语言实现万年历程序的代码&#xff0c;相信很多人都不太了解&#xff0c;为了让大家更加了解C语言实现万年…

C语言基础部分代码

这是我大一的时候新入门C语言整个语法的时候&#xff0c;课堂中所练习的一些基础问题的源码&#xff0c;现分享给新入门C语言的小白&#xff0c;以便于学习了解C语言。 目录 1.将一个正整数分解质因数 2.判断一个数是否为水仙花数 3.找出1000以内的所有完数 4.求一个数是否为素…

圣诞树代码,c语言编程,基于graphics.h

头文件 icon.h&#xff1a; #pragma once #ifndef _ICON_H_ #define _ICON_H_#include<graphics.h> #include<string.h> #include<stdlib.h> #include<iostream> #include<string> #include<Windows.h> #include<Mmsystem.h> #prag…