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

Struts 文件上傳實戰 (一):業務實體類 TrainPlan 設計

     編輯:Java 程式設計入門

業務背景

實現培訓計劃發布功能,包含標題、發布時間、發布人、內容及最多 3 個附件。為便於管理與查詢,附件信息同步入庫,而非僅存文件系統。

實體類設計 - Trainplan

對應資料庫表 KS_TRAINPLAN,採用標準 JavaBean 規範:私有屬性 + 公共 Getter/Setter,實現 Serializable 支援分布式傳輸。

package tester.business.maitain;

public class Trainplan implements java.io.Serializable {
    private int p_id;              // 主鍵,序列生成
    private String p_title;        // 計劃標題
    private int post_index;        // 排序索引
    private String issue_time;     // 發布時間 (yyyy-MM-dd)
    private String issuer;         // 發布人
    private String p_content;      // 正文內容
    private String p_accessory;    // 附件文件名(單字段存多文件名可用分隔符)

    // 標準 Getter/Setter 省略...
    public int getP_id() { return p_id; }
    public void setP_id(int p_id) { this.p_id = p_id; }
    public String getP_title() { return p_title; }
    public void setP_title(String p_title) { this.p_title = p_title; }
    public int getPost_index() { return post_index; }
    public void setPost_index(int post_index) { this.post_index = post_index; }
    public String getIssue_time() { return issue_time; }
    public void setIssue_time(String issue_time) { this.issue_time = issue_time; }
    public String getIssuer() { return issuer; }
    public void setIssuer(String issue) { this.issuer = issue; }
    public String getP_content() { return p_content; }
    public void setP_content(String p_content) { this.p_content = p_content; }
    public String getP_accessory() { return p_accessory; }
    public void setP_accessory(String p_accessory) { this.p_accessory = p_accessory; }
}

設計要點與改進方向

維度現狀建議改進
主鍵生成資料庫 Sequence (SEQ_P_ID)Hibernate @GeneratedValue 或 MyBatis @Options(useGeneratedKeys=true) 統一由框架處理
時間類型String issue_time改用 java.time.LocalDate 或 java.util.Date,配合 @Temporal / @JsonFormat 統一格式化
附件設計單字段存文件名拆分為獨立 TrainPlanAttachment 實體,一對多關聯,支援元數據(大小、類型、上傳時間)
驗證註解無加入 JSR-303 (@NotBlank, @Size, @Future) 實現聲明式驗證

與 Struts 整合要點

  • ActionForm 直接包含 Trainplan 實例(組合模式),表單字段映射為 trainPlan.p_title 等巢狀屬性,Struts 自動填充。
  • 文件上傳字段 (theFile1/2/3) 獨立定義為 org.apache.struts.upload.FormFile 類型,不屬於業務實體。

實體類是領域模型的基石,設計時應高內聚、低耦合、富領域行為,而非單純的資料庫映射容器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved