package model; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Goods { private String id; private String name; private String specification; private String unit; private double price; private String category; private int quantity; private String remark; private LocalDateTime inboundTime; private String operator; private String supplier; public Goods(String id, String name, String specification, String unit, double price, String category) { this.id = id; this.name = name; this.specification = specification; this.unit = unit; this.price = price; this.category = category; this.quantity = 0; this.remark = ""; this.inboundTime = null; this.operator = ""; this.supplier = ""; } public Goods(String id, String name, String specification, String unit, double price, String category, int quantity, String remark) { this.id = id; this.name = name; this.specification = specification; this.unit = unit; this.price = price; this.category = category; this.quantity = quantity; this.remark = remark; this.inboundTime = null; this.operator = ""; this.supplier = ""; } public Goods(String id, String goodsName, int quantity, String remark) { this.id = id; this.name = goodsName; this.quantity = quantity; this.remark = remark; this.inboundTime = null; this.operator = ""; this.supplier = ""; } public static void insertIntoDatabase(Connection conn, Goods goods) throws SQLException { String sql = "INSERT INTO goods (id, name, specification, unit, price, category, quantity, remark, inbound_time, operator, supplier) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (PreparedStatement pstmt = conn.prepareStatement(sql)) { try { pstmt.setString(1, goods.getId()); } catch (SQLException e) { throw new RuntimeException(e); } pstmt.setString(2, goods.getName()); pstmt.setString(3, goods.getSpecification()); pstmt.setString(4, goods.getUnit()); pstmt.setDouble(5, goods.getPrice()); pstmt.setString(6, goods.getCategory()); pstmt.setInt(7, goods.getQuantity()); pstmt.setString(8, goods.getRemark()); pstmt.setString(9, goods.getInboundTime() != null ? goods.getInboundTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) : null); pstmt.setString(10, goods.getOperator()); pstmt.setString(11, goods.getSupplier()); pstmt.executeUpdate(); } } public static void updateInDatabase(Connection conn, Goods goods) throws SQLException { String sql = "UPDATE goods SET name = ?, specification = ?, unit = ?, price = ?, category = ?, " + "quantity = ?, remark = ?, inbound_time = ?, operator = ?, supplier = ? WHERE id = ?"; try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, goods.getName()); pstmt.setString(2, goods.getSpecification()); pstmt.setString(3, goods.getUnit()); pstmt.setDouble(4, goods.getPrice()); pstmt.setString(5, goods.getCategory()); pstmt.setInt(6, goods.getQuantity()); pstmt.setString(7, goods.getRemark()); pstmt.setString(8, goods.getInboundTime() != null ? goods.getInboundTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) : null); pstmt.setString(9, goods.getOperator()); pstmt.setString(10, goods.getSupplier()); pstmt.setString(11, goods.getId()); pstmt.executeUpdate(); } } // Getters and Setters public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSpecification() { return specification; } public void setSpecification(String specification) { this.specification = specification; } public String getUnit() { return unit; } public void setUnit(String unit) { this.unit = unit; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public int getQuantity() { return quantity; } public void setQuantity(int quantity) { this.quantity = quantity; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public LocalDateTime getInboundTime() { return inboundTime; } public void setInboundTime(LocalDateTime inboundTime) { this.inboundTime = inboundTime; } public String getOperator() { return operator; } public void setOperator(String operator) { this.operator = operator; } public String getSupplier() { return supplier; } public void setSupplier(String supplier) { this.supplier = supplier; } }