Cara menggunakan MySQL dan Java untuk membangunkan sistem pesanan dalam talian yang mudah
Dalam beberapa tahun kebelakangan ini, dengan perkembangan Internet, semakin banyak restoran telah mula berubah kepada model pesanan dalam talian. Sistem pesanan dalam talian bukan sahaja dapat meningkatkan kecekapan perkhidmatan restoran, tetapi juga memudahkan pelanggan memesan makanan, dan merealisasikan pembayaran dalam talian, penghantaran bawa pulang dan fungsi lain. Artikel ini akan memperkenalkan cara menggunakan MySQL dan Java untuk membangunkan sistem pesanan dalam talian yang mudah untuk memenuhi keperluan restoran dan pelanggan.
1. Reka bentuk pangkalan data
Sebelum membangunkan sistem pesanan dalam talian, anda perlu mereka bentuk struktur pangkalan data terlebih dahulu. Berikut ialah contoh reka bentuk pangkalan data yang dipermudahkan:
Di atas adalah reka bentuk pangkalan data ringkas yang boleh dikembangkan mengikut keperluan sebenar.
2. Pembangunan back-end Java
Menggunakan bahasa Java untuk menyambung ke pangkalan data MySQL memerlukan pengenalan pakej pemacu pangkalan data yang berkaitan. Mula-mula, tambahkan pakej pemacu MySQL pada projek, dan kemudian buat sambungan pangkalan data dalam kod Kod sampel adalah seperti berikut:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnector { private static final String URL = "jdbc:mysql://localhost:3306/online_ordering_system"; private static final String USER = "root"; private static final String PASSWORD = "123456"; public static Connection getConnection() throws SQLException { Connection connection = DriverManager.getConnection(URL, USER, PASSWORD); return connection; } }
Pengurusan pengguna termasuk pendaftaran pengguna, log masuk dan fungsi lain. Kod sampel adalah seperti berikut:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UserManager { public static boolean register(String username, String password) throws SQLException { Connection connection = DatabaseConnector.getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO User (username, password) VALUES (?, ?)"); statement.setString(1, username); statement.setString(2, password); int rows = statement.executeUpdate(); statement.close(); connection.close(); return rows > 0; } public static boolean login(String username, String password) throws SQLException { Connection connection = DatabaseConnector.getConnection(); PreparedStatement statement = connection.prepareStatement("SELECT * FROM User WHERE username = ? AND password = ?"); statement.setString(1, username); statement.setString(2, password); ResultSet resultSet = statement.executeQuery(); boolean result = resultSet.next(); statement.close(); connection.close(); return result; } }
Pengurusan hidangan termasuk fungsi seperti menambah hidangan dan menyoalnya. Kod sampel adalah seperti berikut:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class DishManager { public static boolean addDish(String dishName, double price, String description) throws SQLException { Connection connection = DatabaseConnector.getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO Dish (dish_name, price, description) VALUES (?, ?, ?)"); statement.setString(1, dishName); statement.setDouble(2, price); statement.setString(3, description); int rows = statement.executeUpdate(); statement.close(); connection.close(); return rows > 0; } public static List<Dish> getDishes() throws SQLException { Connection connection = DatabaseConnector.getConnection(); PreparedStatement statement = connection.prepareStatement("SELECT * FROM Dish"); ResultSet resultSet = statement.executeQuery(); List<Dish> dishes = new ArrayList<>(); while (resultSet.next()) { Dish dish = new Dish(); dish.setDishId(resultSet.getInt("dish_id")); dish.setDishName(resultSet.getString("dish_name")); dish.setPrice(resultSet.getDouble("price")); dish.setDescription(resultSet.getString("description")); dishes.add(dish); } statement.close(); connection.close(); return dishes; } }
Pengurusan pesanan termasuk penciptaan pesanan, pertanyaan dan fungsi lain. Kod sampel adalah seperti berikut:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; public class OrderManager { public static boolean createOrder(int userId, List<OrderDetail> orderDetails) throws SQLException { Connection connection = DatabaseConnector.getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO Order (user_id, order_time, total_amount) VALUES (?, ?, ?)"); statement.setInt(1, userId); statement.setTimestamp(2, new Timestamp(System.currentTimeMillis())); double totalAmount = 0; for (OrderDetail orderDetail : orderDetails) { totalAmount += orderDetail.getQuantity() * orderDetail.getDish().getPrice(); } statement.setDouble(3, totalAmount); int rows = statement.executeUpdate(); statement.close(); if (rows > 0) { // 获取刚插入的订单ID PreparedStatement getLastInsertIdStatement = connection.prepareStatement("SELECT LAST_INSERT_ID()"); ResultSet resultSet = getLastInsertIdStatement.executeQuery(); int orderId = 0; if (resultSet.next()) { orderId = resultSet.getInt(1); } // 插入订单明细 PreparedStatement insertOrderDetailStatement = connection.prepareStatement("INSERT INTO OrderDetail (order_id, dish_id, quantity) VALUES (?, ?, ?)"); for (OrderDetail orderDetail : orderDetails) { insertOrderDetailStatement.setInt(1, orderId); insertOrderDetailStatement.setInt(2, orderDetail.getDish().getDishId()); insertOrderDetailStatement.setInt(3, orderDetail.getQuantity()); insertOrderDetailStatement.addBatch(); } insertOrderDetailStatement.executeBatch(); insertOrderDetailStatement.close(); getLastInsertIdStatement.close(); } connection.close(); return rows > 0; } public static List<Order> getOrders(int userId) throws SQLException { Connection connection = DatabaseConnector.getConnection(); PreparedStatement statement = connection.prepareStatement("SELECT * FROM Order WHERE user_id = ?"); statement.setInt(1, userId); ResultSet resultSet = statement.executeQuery(); List<Order> orders = new ArrayList<>(); while (resultSet.next()) { Order order = new Order(); order.setOrderId(resultSet.getInt("order_id")); order.setUserId(resultSet.getInt("user_id")); order.setOrderTime(resultSet.getTimestamp("order_time")); order.setTotalAmount(resultSet.getDouble("total_amount")); orders.add(order); } statement.close(); connection.close(); return orders; } }
Di atas ialah contoh pembangunan back-end Java yang mudah, termasuk pengurusan pengguna, pengurusan hidangan, pengurusan pesanan dan fungsi lain.
3. Pembangunan bahagian hadapan
Bahagian pembangunan bahagian hadapan boleh dibangunkan menggunakan HTML, CSS, JavaScript dan teknologi lain yang berkaitan untuk melaksanakan antara muka pengguna dan logik interaksi. Tiada contoh kod bahagian hadapan khusus disediakan di sini. Adalah disyorkan untuk menggunakan rangka kerja bahagian hadapan seperti Bootstrap untuk pembangunan pantas.
4. Ringkasan
Menggunakan MySQL dan Java untuk membangunkan sistem pesanan dalam talian yang mudah boleh meningkatkan pengalaman memesan restoran dan pelanggan. Dengan mereka bentuk struktur pangkalan data secara rasional dan menggunakan Java dan MySQL untuk pembangunan back-end, fungsi seperti pengurusan pengguna, pengurusan hidangan, dan pengurusan pesanan boleh direalisasikan. Pada masa yang sama, pembangunan bahagian hadapan juga perlu mengambil kira reka bentuk antara muka pengguna dan pelaksanaan logik interaksi.
Saya harap artikel ini dapat membantu pembaca memahami cara menggunakan MySQL dan Java untuk membangunkan sistem pesanan dalam talian yang mudah, dan menyediakan beberapa contoh kod khusus untuk rujukan.
Atas ialah kandungan terperinci Bagaimana untuk membangunkan sistem pesanan dalam talian yang mudah menggunakan MySQL dan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!