在数字化时代,餐馆管理系统的构建已经成为提高服务效率、优化资源配置的重要手段。本文将带领你从零开始,使用JDBC技术搭建一个简单的餐馆管理系统。我们将一步步讲解如何进行需求分析、环境搭建、数据库设计、代码编写以及系统测试。

一、需求分析

在开始之前,我们需要明确餐馆管理系统的基本功能。以下是一个基本的餐馆管理系统需求列表:

  • 菜品管理:包括添加、修改、删除和查询菜品信息。
  • 订单管理:包括生成订单、查看订单、处理订单和订单查询。
  • 顾客管理:包括添加、修改、删除和查询顾客信息。
  • 用户管理:包括添加、修改、删除和查询用户信息。
  • 账单管理:包括生成账单、查看账单、处理账单和账单查询。

二、环境搭建

  1. 开发工具:选择一款适合Java开发的IDE,如Eclipse、IntelliJ IDEA等。
  2. 数据库:选择一款数据库系统,如MySQL、Oracle等。这里我们以MySQL为例。
  3. JDBC驱动:下载并添加对应的JDBC驱动到项目的classpath中。

三、数据库设计

  1. 菜品表:包含菜品编号、名称、价格、描述等信息。
  2. 订单表:包含订单编号、顾客编号、下单时间、订单状态等信息。
  3. 顾客表:包含顾客编号、姓名、联系方式、地址等信息。
  4. 用户表:包含用户编号、姓名、密码、角色等信息。
  5. 账单表:包含账单编号、订单编号、金额、支付时间等信息。

四、代码编写

1. 数据库连接

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/restaurant";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "root";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USERNAME, PASSWORD);
    }
}

2. 菜品管理

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DishManager {
    // 添加菜品
    public void addDish(String name, double price, String description) {
        String sql = "INSERT INTO dishes (name, price, description) VALUES (?, ?, ?)";
        try (Connection conn = DatabaseUtil.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setString(1, name);
            pstmt.setDouble(2, price);
            pstmt.setString(3, description);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    // 查询菜品
    public void queryDish(String name) {
        String sql = "SELECT * FROM dishes WHERE name = ?";
        try (Connection conn = DatabaseUtil.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setString(1, name);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println("菜品名称:" + rs.getString("name"));
                System.out.println("菜品价格:" + rs.getDouble("price"));
                System.out.println("菜品描述:" + rs.getString("description"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3. 订单管理

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class OrderManager {
    // 生成订单
    public void createOrder(int customerId, String dishName, double price) {
        String sql = "INSERT INTO orders (customer_id, dish_name, price) VALUES (?, ?, ?)";
        try (Connection conn = DatabaseUtil.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setInt(1, customerId);
            pstmt.setString(2, dishName);
            pstmt.setDouble(3, price);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    // 查看订单
    public void viewOrder(int orderId) {
        String sql = "SELECT * FROM orders WHERE order_id = ?";
        try (Connection conn = DatabaseUtil.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setInt(1, orderId);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println("订单编号:" + rs.getInt("order_id"));
                System.out.println("顾客编号:" + rs.getInt("customer_id"));
                System.out.println("菜品名称:" + rs.getString("dish_name"));
                System.out.println("订单价格:" + rs.getDouble("price"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

五、系统测试

  1. 运行程序,测试各个功能模块是否正常工作。
  2. 根据测试结果,对程序进行优化和改进。

通过以上步骤,你已经成功搭建了一个简单的餐馆管理系统。在实际应用中,你可以根据自己的需求不断完善和扩展系统功能。祝你成功!