数据库超市管理Java

简介

数据库超市管理系统是一种用于管理超市库存和销售记录的系统。通过该系统,超市管理员可以方便地记录商品信息、管理库存、查询销售记录等操作。本文将介绍如何使用Java来实现一个简单的数据库超市管理系统,并提供相关的代码示例。

功能需求

数据库超市管理系统需要实现以下几个基本功能:

  1. 商品管理:包括添加商品、修改商品信息、删除商品等操作;
  2. 库存管理:可以查询某种商品的库存数量,也可以对库存数量进行增减操作;
  3. 销售管理:可以添加销售记录,查询某个时间段内的销售记录等;
  4. 统计报表:可以生成销售统计报表,统计某段时间内的销售情况。

数据库设计

为了方便管理商品信息和销售记录,我们需要设计两张数据库表,分别是商品表销售记录表

商品表

字段名 类型 说明
id int 商品ID
name varchar 商品名称
price decimal 商品价格
inventory int 商品库存数量

销售记录表

字段名 类型 说明
id int 记录ID
productId int 商品ID
quantity int 销售数量
time datetime 销售时间

代码示例

下面是一个简单的Java类,用于实现数据库超市管理系统的一些基本操作。这里使用了JDBC来连接数据库,并使用SQL语句来进行数据的增删改查操作。

import java.sql.*;

public class SupermarketManager {
    private Connection connection;

    // 连接数据库
    public void connect(String url, String username, String password) throws SQLException {
        connection = DriverManager.getConnection(url, username, password);
    }

    // 添加商品
    public void addProduct(String name, double price, int inventory) throws SQLException {
        String sql = "INSERT INTO product (name, price, inventory) VALUES (?, ?, ?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1, name);
        statement.setDouble(2, price);
        statement.setInt(3, inventory);
        statement.executeUpdate();
    }

    // 查询商品库存数量
    public int getProductInventory(int productId) throws SQLException {
        String sql = "SELECT inventory FROM product WHERE id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1, productId);
        ResultSet resultSet = statement.executeQuery();
        resultSet.next();
        return resultSet.getInt("inventory");
    }

    // 添加销售记录
    public void addSalesRecord(int productId, int quantity, Date time) throws SQLException {
        String sql = "INSERT INTO sales_record (productId, quantity, time) VALUES (?, ?, ?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1, productId);
        statement.setInt(2, quantity);
        statement.setDate(3, time);
        statement.executeUpdate();
    }
    
    // 查询销售记录
    public ResultSet getSalesRecords(Date startDate, Date endDate) throws SQLException {
        String sql = "SELECT * FROM sales_record WHERE time BETWEEN ? AND ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setDate(1, startDate);
        statement.setDate(2, endDate);
        return statement.executeQuery();
    }
    
    // 关闭数据库连接
    public void close() throws SQLException {
        connection.close();
    }
}

示例应用

下面是一个简单的示例应用,展示了如何使用SupermarketManager类来进行超市管理操作。

import java.sql.*;
import java.util.Date;

public class SupermarketDemo {
    public static void main(String[] args) throws SQLException {
        SupermarketManager manager = new SupermarketManager();
        manager.connect("jdbc:mysql://localhost:3306/supermarket", "root", "password");

        // 添加商品
        manager.addProduct("苹果", 5.0, 100);

        // 查询商品库存数量
        int inventory = manager.getProductInventory(1);
        System.out.println("苹果库存数量:" + inventory);

        // 添加销售记录
        manager.addSalesRecord(1, 10, new Date());

        // 查询销售记录
        ResultSet resultSet = manager.getSalesRecords(new Date(), new Date());
        while (resultSet.next()) {
            System.out.println("记录ID:" + resultSet.getInt("id"));
            System.out.println("商品ID:" + resultSet.getInt("productId"));
            System.out.println