数据库超市管理Java
简介
数据库超市管理系统是一种用于管理超市库存和销售记录的系统。通过该系统,超市管理员可以方便地记录商品信息、管理库存、查询销售记录等操作。本文将介绍如何使用Java来实现一个简单的数据库超市管理系统,并提供相关的代码示例。
功能需求
数据库超市管理系统需要实现以下几个基本功能:
- 商品管理:包括添加商品、修改商品信息、删除商品等操作;
- 库存管理:可以查询某种商品的库存数量,也可以对库存数量进行增减操作;
- 销售管理:可以添加销售记录,查询某个时间段内的销售记录等;
- 统计报表:可以生成销售统计报表,统计某段时间内的销售情况。
数据库设计
为了方便管理商品信息和销售记录,我们需要设计两张数据库表,分别是商品表
和销售记录表
。
商品表
字段名 | 类型 | 说明 |
---|---|---|
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