首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 圖書銷售系統:POJO 領域模型設計

     編輯:Java 相關知識

核心實體類

本系統包含 5 個核心 POJO,對應數據庫表結構:

1. Book 圖書實體

public class Book {
    private Integer id;
    private String isbn;
    private String title;
    private String author;
    private String publisher;
    private Double price;
    private Integer stockQuantity;
    private String category;
    private String description;
    private Date publishDate;
    // Getter/Setter、toString、equals/hashCode 省略
}

2. BookStockHistory 庫存變動歷史

public class BookStockHistory {
    private Integer id;
    private Integer bookId;
    private Integer changeQuantity; // 正數入庫,負數出庫
    private String changeType;      // PURCHASE, SALE, RETURN, ADJUSTMENT
    private String operator;
    private Date changeTime;
    private String remark;
    // Getter/Setter 省略
}

3. Order 訂單主表

public class Order {
    private Integer id;
    private String orderNo;
    private Integer userId;
    private Date orderTime;
    private Double totalAmount;
    private String status; // PENDING, PAID, SHIPPED, COMPLETED, CANCELLED
    private String shippingAddress;
    private String receiverName;
    private String receiverPhone;
    private List items; // 關聯明細
    // Getter/Setter 省略
}

4. OrderItem 訂單明細

public class OrderItem {
    private Integer id;
    private Integer orderId;
    private Integer bookId;
    private Integer quantity;
    private Double unitPrice;
    private Double subtotal;
    private Book book; // 關聯圖書對象,便於顯示
    // Getter/Setter 省略
}

5. User 用戶實體

public class User {
    private Integer id;
    private String username;
    private String password; // 加密存儲
    private String email;
    private String phone;
    private String realName;
    private Integer role; // 0: 普通用戶, 1: 管理員
    private Date registerTime;
    private Date lastLoginTime;
    private Boolean enabled;
    // Getter/Setter 省略
}

設計要點

  • 豐富領域模型:Order 聚合 OrderItem,OrderItem 關聯 Book,支援導航查詢。
  • 審計字段:關鍵實體均包含創建時間、操作人,滿足審計需求。
  • 枚舉化狀態:訂單狀態、庫存變動類型建議使用 Java Enum 替代 String,編譯期檢查。
  • 金額精度:價格字段採用 Double 為演示,生產環境必須改用 BigDecimal 避免浮點誤差。
  • 雙向關聯控制:Order.items 為單向引用,避免序列化循環;如需雙向,配合 @JsonIgnore 或 @ToString.Exclude。

擴展建議

  1. 引入 JPA 註解(@Entity, @Table, @OneToMany 等)實現 ORM 映射。
  2. 添加 Bean Validation 註解(@NotNull, @Size, @Email 等)聲明式校驗。
  3. 實現 Serializable 支援分布式 Session/緩存。
  4. 提取公共基類 BaseEntity 統一 id、創建時間、版本號等字段。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved