该订单管理系统我已完成如下功能:
1、数据库建立:数据库名:order,含有三张表product、orders、order_product
product ID Name Price Stock
记录商品 商品ID 商品名 商品价格 商品库存
orders ID Time Price
记录订单 订单ID 下单时间 订单总价格
order_product OrderID ProductID ProductQuantity
记录商品与订单的关系 订单号 商品号 商品数量
其中order_product中,(OrderID,ProductID)构成主码
2、编写JDBC工具类
处理数据库连接
static {
try {
// 使用最新的驱动类名
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("MYSQL连接错误。");
}
}
// 获取数据库连接
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
执行增删查改操作
public static int executeUpdate(String sql, Object... params)
public static ResultSet executeQuery(String sql, Object... params)
添加事务管理
public static void beginTransaction(Connection conn)
public static void commitTransaction(Connection conn)
public static void rollbackTransaction(Connection conn)
资源释放函数
public static void close(ResultSet rs, Statement stmt, Connection conn)
每个函数均包含异常处理且自定义三个异常处理类ProductNotFoundException(商品未找到) ProductPriceException(商品价格有问题) StockNotEnough(库存不足)
3、根据JDBC工具类编写商品和订单的增删改查
创建订单public void createOrder(int[] productIds, int[] quantities)
删除订单public void deleteOrder(int orderId)
查询订单public void listOrders()
查询订单并根据订单价格排序public void listOrdersByPrice()
查询订单并根据时间排序public void listOrdersByTime()
实现分页查询订单public void listOrdersByPage(int page, int pageSize)
添加商品public void addProduct(String name, double price)
删除商品public void deleteProduct(String name)
查询所有商品public void listProducts()
查询所有商品并根据价格排序public void listProductsByPrice()
更新商品价格public void updateProductPrice(int productId, double newPrice)
实现分页查询商品public void listProductsByPage(int page, int pageSize)
4、商品存在有检测功能,当商品存在时,价格不同则无法添加商品。价格相同则增加库存。
5、价格有检测必须大于0,且如上添加商品价格不同时无法添加。
6、如果想要删除已经存在在订单中的商品,将拒绝删除该商品。且如果要删除订单将级联删除order_product表
7、未使用SELECT *
8、实现了分页查询。
9、使用了maven环境搭建