基于Java的电子点餐系统小程序
随着科技的发展,电子点餐系统逐渐取代了传统的点餐方式,为餐饮行业带来了巨大的变革。本文将介绍一个基于Java语言的电子点餐系统的基本架构、实现代码以及数据库设计。
系统功能简介
该电子点餐系统主要包括以下几个功能模块: 1. 用户注册与登录:用户可以注册账户并登录系统。 2. 菜单展示:用户可以查看餐厅的菜单,包括菜品名称、价格及描述等。 3. 点餐处理:用户选择菜品并提交订单。 4. 订单管理:用户可以查看自己的订单状态。 5. 后台管理:管理人员可以管理菜品和查看订单。
系统架构
本系统采用MVC架构,分为三个部分: - 模型层:负责业务逻辑和数据处理。 - 视图层:负责展示用户界面。 - 控制层:接收用户输入,调用模型层,并返回结果到视图层。
数据库设计
数据库使用MySQL,主要包括以下表结构:
-
用户表 (users)
sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) UNIQUE NOT NULL, password VARCHAR(100) NOT NULL );
-
菜单表 (menu)
sql CREATE TABLE menu ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, price DECIMAL(10, 2) NOT NULL, description TEXT );
-
订单表 (orders)
sql CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, menu_id INT, order_date DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (menu_id) REFERENCES menu(id) );
代码实现
以下是系统的核心功能代码示例:
-
用户注册与登录 ```java public class UserService { public boolean register(String username, String password) { // 假设db是数据库连接对象 String sql = "INSERT INTO users(username, password) VALUES (?, ?)"; // 通过PreparedStatement执行SQL语句 try (PreparedStatement stmt = db.prepareStatement(sql)) { stmt.setString(1, username); stmt.setString(2, password); // 这里应加密处理 return stmt.executeUpdate() > 0; } catch (SQLException e) { e.printStackTrace(); return false; } }
public boolean login(String username, String password) { String sql = "SELECT * FROM users WHERE username = ? AND password = ?"; try (PreparedStatement stmt = db.prepareStatement(sql)) { stmt.setString(1, username); stmt.setString(2, password); // 这里应加密处理 ResultSet rs = stmt.executeQuery(); return rs.next(); } catch (SQLException e) { e.printStackTrace(); return false; } } } ```
-
菜单展示
java public class MenuService { public List<Dish> getMenu() { List<Dish> menu = new ArrayList<>(); String sql = "SELECT * FROM menu"; try (Statement stmt = db.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { while (rs.next()) { Dish dish = new Dish(); dish.setId(rs.getInt("id")); dish.setName(rs.getString("name")); dish.setPrice(rs.getBigDecimal("price")); dish.setDescription(rs.getString("description")); menu.add(dish); } } catch (SQLException e) { e.printStackTrace(); } return menu; } }
-
点餐处理
java public class OrderService { public boolean placeOrder(int userId, int menuId) { String sql = "INSERT INTO orders(user_id, menu_id) VALUES (?, ?)"; try (PreparedStatement stmt = db.prepareStatement(sql)) { stmt.setInt(1, userId); stmt.setInt(2, menuId); return stmt.executeUpdate() > 0; } catch (SQLException e) { e.printStackTrace(); return false; } } }
总结
本系统通过Java语言结合MySQL数据库,实现了一个基本的电子点餐小程序。系统具备用户注册、菜单展示和订单处理等功能,适用于中小型餐饮企业。为进一步提升系统体验,可以考虑增加菜品搜索、用户评价、支付功能等。同时,为了提高系统的安全性,用户密码应使用加密算法进行处理。通过不断优化和扩展功能,可以将该系统发展成一个完整的餐饮管理解决方案。