在数字化时代,餐馆管理系统的构建已经成为提高服务效率、优化资源配置的重要手段。本文将带领你从零开始,使用JDBC技术搭建一个简单的餐馆管理系统。我们将一步步讲解如何进行需求分析、环境搭建、数据库设计、代码编写以及系统测试。
一、需求分析
在开始之前,我们需要明确餐馆管理系统的基本功能。以下是一个基本的餐馆管理系统需求列表:
- 菜品管理:包括添加、修改、删除和查询菜品信息。
- 订单管理:包括生成订单、查看订单、处理订单和订单查询。
- 顾客管理:包括添加、修改、删除和查询顾客信息。
- 用户管理:包括添加、修改、删除和查询用户信息。
- 账单管理:包括生成账单、查看账单、处理账单和账单查询。
二、环境搭建
- 开发工具:选择一款适合Java开发的IDE,如Eclipse、IntelliJ IDEA等。
- 数据库:选择一款数据库系统,如MySQL、Oracle等。这里我们以MySQL为例。
- JDBC驱动:下载并添加对应的JDBC驱动到项目的classpath中。
三、数据库设计
- 菜品表:包含菜品编号、名称、价格、描述等信息。
- 订单表:包含订单编号、顾客编号、下单时间、订单状态等信息。
- 顾客表:包含顾客编号、姓名、联系方式、地址等信息。
- 用户表:包含用户编号、姓名、密码、角色等信息。
- 账单表:包含账单编号、订单编号、金额、支付时间等信息。
四、代码编写
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();
}
}
}
五、系统测试
- 运行程序,测试各个功能模块是否正常工作。
- 根据测试结果,对程序进行优化和改进。
通过以上步骤,你已经成功搭建了一个简单的餐馆管理系统。在实际应用中,你可以根据自己的需求不断完善和扩展系统功能。祝你成功!
