Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membangunkan sistem pesanan dalam talian yang mudah menggunakan MySQL dan Java

Bagaimana untuk membangunkan sistem pesanan dalam talian yang mudah menggunakan MySQL dan Java

WBOY
WBOYasal
2023-09-21 16:27:351213semak imbas

Bagaimana untuk membangunkan sistem pesanan dalam talian yang mudah menggunakan MySQL dan Java

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:

  1. Jadual pengguna (Pengguna): Mengandungi ID pengguna, nama pengguna, kata laluan dan medan lain.
  2. Meja hidangan (Hidangan): Mengandungi medan seperti ID hidangan, nama hidangan, harga dan keterangan.
  3. Jadual pesanan (Pesanan): termasuk medan seperti ID pesanan, ID pengguna, masa pesanan, jumlah amaun, dsb.
  4. Perincian Pesanan: Mengandungi ID butiran pesanan, ID pesanan, ID hidangan, kuantiti dan medan lain.

Di atas adalah reka bentuk pangkalan data ringkas yang boleh dikembangkan mengikut keperluan sebenar.

2. Pembangunan back-end Java

  1. Sambungan pangkalan data

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;
    }
}
  1. Pengurusan pengguna

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;
    }
}
  1. Pengurusan hidangan

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;
    }
}
  1. Pengurusan pesanan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn