Java 与 SQL 联手:打造花店购物系统详细代码示例
以下是一个简单的花店购物系统的示例代码,包含了商品类、订单类、数据库操作等部分,代码中使用了 MySQL 数据库。 ```java import 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; // 商品类 class FlowerProduct { private int id; private String name; private double price; public FlowerProduct(int id, String name, double price) { this.id = id; this.name = name; this.price = price; } public int getId() { return id; } public String getName() { return name; } public double getPrice() { return price; } } // 订单类 class FlowerOrder { private int orderId; private int productId; private int quantity; public FlowerOrder(int orderId, int productId, int quantity) { this.orderId = orderId; this.productId = productId; this.quantity = quantity; } public int getOrderId() { return orderId; } public int getProductId() { return productId; } public int getQuantity() { return quantity; } } public class FlowerShopSystem { // 数据库连接参数 private static final String DB_URL = "jdbc:mysql://localhost:3306/flower_shop"; private static final String USER = "root"; private static final String PASS = "your_password"; // 获取商品列表 public List<FlowerProduct> getProducts() { List<FlowerProduct> products = new ArrayList<>(); try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement stmt = conn.prepareStatement("SELECT * FROM products"); ResultSet rs = stmt.executeQuery()) { while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); double price = rs.getDouble("price"); products.add(new FlowerProduct(id, name, price)); } } catch (SQLException e) { e.printStackTrace(); } return products; } // 创建订单 public void createOrder(FlowerOrder order) { try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement stmt = conn.prepareStatement("INSERT INTO orders (product_id, quantity) VALUES (?,?)")) { stmt.setInt(1, order.getProductId()); stmt.setInt(2, order.getQuantity()); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } // 主函数 public static void main(String[] args) { FlowerShopSystem system = new FlowerShopSystem(); // 获取商品列表并打印 List<FlowerProduct> products = system.getProducts(); for (FlowerProduct product : products) { System.out.println(product.getId() + " - " + product.getName() + " - $" + product.getPrice()); } // 创建订单示例 FlowerOrder order = new FlowerOrder(1, 1, 5); system.createOrder(order); } } ``` 注意点: 1. 请确保数据库已正确创建和配置,包括表结构和用户权限。 2. 在实际应用中,需要添加更多的错误处理和边界情况的处理。 3. 代码中的数据库连接参数需要根据实际情况进行修改。 ######[AI写代码神器 | 847点数解答 | 2025-03-06 19:10:15]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)429
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)55
- Java SQL语法错误:“select count(*)”语句出错,教你排查MariaDB SQL语法问题!( | 350点数解答 | 2024-04-25 08:26:19)397
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)330
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1216
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)266
- “wsm.count”函数不存在报错:SQL 执行遇阻,多维度排查解难题 ( | 672点数解答 | 2024-04-25 08:58:21)399
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)286
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)285
- ClickHouse 表只读模式错误:原因、解决方案及代码检查示例(DeepSeek | 404点数解答 | 2025-02-11 14:14:17)229
- Three.js 示例代码解析:优化场景渲染与注意要点(字节豆包 | 164点数解答 | 2025-02-27 23:30:20)283
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)339