Maison  >  Article  >  base de données  >  Comment développer un système de commande en ligne simple en utilisant MySQL et Java

Comment développer un système de commande en ligne simple en utilisant MySQL et Java

WBOY
WBOYoriginal
2023-09-21 16:27:351215parcourir

Comment développer un système de commande en ligne simple en utilisant MySQL et Java

Comment utiliser MySQL et Java pour développer un système de commande en ligne simple

Ces dernières années, avec le développement d'Internet, de plus en plus de restaurants ont commencé à se transformer vers le modèle de commande en ligne. Le système de commande en ligne peut non seulement améliorer l'efficacité du service du restaurant, mais également permettre aux clients de commander de la nourriture et de réaliser le paiement en ligne, la livraison à emporter et d'autres fonctions. Cet article explique comment utiliser MySQL et Java pour développer un système de commande en ligne simple répondant aux besoins des restaurants et des clients.

1. Conception de la base de données

Avant de développer le système de commande en ligne, vous devez d'abord concevoir la structure de la base de données. Ce qui suit est un exemple simplifié de conception de base de données :

  1. Table utilisateur (Utilisateur) : contient l'ID utilisateur, le nom d'utilisateur, le mot de passe et d'autres champs.
  2. Tableau des plats (Plat) : contient des champs tels que l'ID du plat, le nom du plat, le prix et la description.
  3. Tableau de commande (Commande) : comprend des champs tels que l'ID de commande, l'ID utilisateur, l'heure de la commande, le montant total, etc.
  4. Détail de la commande : contient l'ID détaillé de la commande, l'ID de la commande, l'ID du plat, la quantité et d'autres champs.

Ce qui précède est une conception de base de données simple qui peut être étendue en fonction des besoins réels.

2. Développement back-end Java

  1. Connexion à la base de données

L'utilisation du langage Java pour se connecter à la base de données MySQL nécessite l'introduction de packages de pilotes de base de données pertinents. Tout d'abord, ajoutez le package de pilotes MySQL au projet, puis établissez une connexion à la base de données dans le code. L'exemple de code est le suivant :

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. Gestion des utilisateurs

La gestion des utilisateurs comprend l'enregistrement des utilisateurs, la connexion et d'autres fonctions. L'exemple de code est le suivant :

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. Gestion des plats

La gestion des plats comprend des fonctions telles que l'ajout de plats et leur interrogation. L'exemple de code est le suivant :

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. Gestion des commandes

La gestion des commandes comprend la création de commandes, la requête et d'autres fonctions. L'exemple de code est le suivant :

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;
    }
}

Ce qui précède est un exemple simple de développement back-end Java, comprenant la gestion des utilisateurs, la gestion des plats, la gestion des commandes et d'autres fonctions.

3. Développement front-end

La partie développement front-end peut être développée en utilisant HTML, CSS, JavaScript et d'autres technologies connexes pour implémenter l'interface utilisateur et la logique d'interaction. Aucun exemple de code frontal spécifique n'est fourni ici. Il est recommandé d'utiliser des frameworks frontaux tels que Bootstrap pour un développement rapide.

4. Résumé

L'utilisation de MySQL et Java pour développer un système de commande en ligne simple peut améliorer l'expérience de commande des restaurants et des clients. En concevant rationnellement la structure de la base de données et en utilisant Java et MySQL pour le développement back-end, des fonctions telles que la gestion des utilisateurs, la gestion des plats et la gestion des commandes peuvent être réalisées. Dans le même temps, le développement front-end doit également prendre en compte la conception de l'interface utilisateur et la mise en œuvre d'une logique d'interaction.

J'espère que cet article pourra aider les lecteurs à comprendre comment utiliser MySQL et Java pour développer un système de commande en ligne simple, et fournit quelques exemples de code spécifiques pour référence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn