创建一个多用户商城的Java代码需要考虑到很多方面,包括数据库设计、用户管理、商品管理、订单处理等。以下是一个简化的示例,它展示了如何使用Java创建一个基本的商城系统。
- 数据库设计
首先,我们需要一个数据库来存储用户、商品和订单信息。这里我们使用MySQL数据库。
sqlCREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL
);
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
product_id INT,
quantity INT,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);
- Java代码
我们将使用JDBC来连接数据库。首先,添加MySQL的JDBC驱动到你的项目中。
接下来是Java代码:
javaimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class商城系统 {
private static final String DB_URL = "jdbc:mysql://localhost:3306/my商城";
private static final String USER = "root";
private static final String PASS = "password";
public static void main(String[] args) {
// 示例:添加用户、商品和订单等操作。这些操作可以根据需要进行扩展和优化。
addUser("张三");
addProduct("iPhone 14", 9999.99);
addOrder("张三", 1, 1); // 假设第一个商品ID为1的产品是iPhone 14,购买数量为1部。
showOrders(); // 显示所有订单
}
public static void addUser(String username) {
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, username);
pstmt.setString(2, "password"); // 这里只是简单存储明文密码,实际应用中应使用哈希+盐的方式存储密码。
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void addProduct(String name, double price) {
String sql = "INSERT INTO products (name, price) VALUES (?, ?)";
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setDouble(2, price);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void addOrder(String username, int productId, int quantity) {
String sql = "INSERT INTO orders (user_id, product_id, quantity) VALUES (?, ?, ?)";
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, getUserId(username)); // getUserId是一个假设存在的函数,用于根据用户名获取用户ID。实际应用中可能需要使用一个映射表或查找数据库来获取ID。
pstmt.setInt(2, productId);
pstmt.setInt(3, quantity);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void showOrders() {
String sql = "SELECT users.username, products.name, orders.quantity FROM users JOIN orders ON users.id = orders.user_id JOIN products ON products