温馨提示:这篇文章已超过241天没有更新,请注意相关的内容是否还可用!
订餐系统是一个常见的网页应用程序,它允许用户在线订购餐点,并提供了管理订单和菜单的功能。下面是一个使用Java和JavaWeb开发的订餐系统的源代码示例。
我们需要创建一个数据库来存储菜单和订单信息。我们可以使用MySQL数据库,并创建两个表,一个用于存储菜单信息,另一个用于存储订单信息。
CREATE TABLE menu (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price DECIMAL(8, 2) NOT NULL
);
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
menu_id INT NOT NULL,
quantity INT NOT NULL,
total_price DECIMAL(8, 2) NOT NULL,
FOREIGN KEY (menu_id) REFERENCES menu(id)
);
接下来,我们可以创建一个Java类来表示菜单项。这个类将具有id、name和price属性,并提供相应的getter和setter方法。
public class MenuItem {
private int id;
private String name;
private double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
然后,我们可以创建一个Java类来处理菜单相关的操作,如添加菜单项、获取菜单列表等。这个类将使用JDBC连接到数据库,并执行相应的SQL语句。
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class MenuDao {
private static final String URL = "jdbc:mysql://localhost:3306/restaurant";
private static final String USERNAME = "root";
private static final String PASSWORD = "password";
public List<MenuItem> getMenu() {
List<MenuItem> menu = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM menu")) {
while (rs.next()) {
MenuItem item = new MenuItem();
item.setId(rs.getInt("id"));
item.setName(rs.getString("name"));
item.setPrice(rs.getDouble("price"));
menu.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}
return menu;
}
public void addMenuItem(MenuItem item) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement stmt = conn.prepareStatement("INSERT INTO menu (name, price) VALUES (?, ?)")) {
stmt.setString(1, item.getName());
stmt.setDouble(2, item.getPrice());
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我们可以创建一个Java类来处理订单相关的操作,如创建订单、计算总价等。这个类也将使用JDBC连接到数据库,并执行相应的SQL语句。
import java.sql.*;
public class OrderDao {
private static final String URL = "jdbc:mysql://localhost:3306/restaurant";
private static final String USERNAME = "root";
private static final String PASSWORD = "password";
public void createOrder(int menuId, int quantity) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement stmt = conn.prepareStatement("INSERT INTO orders (menu_id, quantity, total_price) VALUES (?, ?, ?)")) {
MenuItem item = getMenuById(menuId);
double totalPrice = item.getPrice() * quantity;
stmt.setInt(1, menuId);
stmt.setInt(2, quantity);
stmt.setDouble(3, totalPrice);
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
private MenuItem getMenuById(int menuId) {
MenuItem item = new MenuItem();
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM menu WHERE id = ?")) {
stmt.setInt(1, menuId);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
item.setId(rs.getInt("id"));
item.setName(rs.getString("name"));
item.setPrice(rs.getDouble("price"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return item;
}
}
以上就是一个简单的订餐系统的JavaWeb源代码示例。通过这些代码,我们可以实现菜单的添加和获取,以及订单的创建和总价计算等功能。