將數十上百張資料表手寫 Entity/DTO 是繁瑣且易錯的。本文介紹一款基於 Swing 開發的桌面級代碼生成神器,支援 MySQL/Oracle/SQL Server/PostgreSQL,功能涵蓋 JPA 註解、Lombok、Builder 模式、多模板引擎、參數配置管理等,實現秒級生成。
| 功能模組 | 關鍵特性 | v12 新增/增強 |
|---|---|---|
| 資料源管理 | 多資料庫類型、多環境、連接測試、驅動自適應 | 快速新增、預設配置、Schema 自動識別 |
| 參數配置 | 專案級配置隔離、命名策略、註解選項、輸出路徑 | 配置管理面板、快速新增專案配置 |
| 實體生成策略 | JPA/Lombok/Builder、主鍵策略、字段註解、類/字段備註 | 實體級註解選擇、@NotNull/@NotBlank 自動添加 |
| 表選擇 | 精確匹配、模糊查詢、前綴移除、多前綴支援 | 精確匹配已選表自動勾選、修復模糊匹配 Bug |
| 模板引擎 | Velocity/FreeMarker、多語言支援 (Java/Kotlin/Go/TS) | 模板選擇器、自定義模板提交機制 |
| 集成工具箱 | 字串拼接、JSON/XML 格式化、命名轉換、清除 StringBuffer | 38 款換膚、打開目錄、原始碼統計 |
mysql-connector-java-5.1.39.jar、ojdbc14.jar、sqljdbc4.jar、postgresql-9.4.1208.jre7.jarVARCHAR→String、BIGINT→Long、DECIMAL→BigDecimal、DATETIME→LocalDateTime 等@JsonFormat、@DateTimeFormat、@Temporal 可選${author}、${date}、${tableName} 等paramConfig.ini,重啟自動載入💡 核心建議:實體生成策略選擇 「所有字段上均無 Column 註解」,配合 ORM 框架命名策略,生成速度最快且維護最輕鬆。
# application.properties / persistence.xml hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy # 或 Spring Boot 2.x+ spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
# application.yml
mybatis:
configuration:
map-underscore-to-camel-case: true # 開啟下劃線轉駝峰,省略 resultMap
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "t_user", comment = "用戶表")
public class UserEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Comment("主鍵 ID")
private Long id;
@NotBlank
@Column(name = "user_name", length = 50, nullable = false, comment = "用戶名")
private String userName;
@Column(name = "email", length = 100, comment = "郵箱")
private String email;
@Column(name = "create_time", comment = "創建時間")
private LocalDateTime createTime;
@Version
@Comment("樂觀鎖版本號")
private Integer version;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "用戶傳輸對象")
public class UserDTO implements Serializable {
@Schema(description = "主鍵 ID")
private Long id;
@NotBlank(message = "用戶名不能為空")
@Schema(description = "用戶名")
private String userName;
@Email(message = "郵箱格式不正確")
@Schema(description = "郵箱")
private String email;
}
JAVA_HOME,否則無法啟動| 問題 | 原因 | 解決方案 |
|---|---|---|
| 覆蓋升級後功能異常 | 舊版 paramConfig.ini 不兼容新版配置項 | 刪除舊配置文件,重啟自動生成新版配置 |
| 壓縮包解壓失敗 | 分卷壓縮,需同時解壓大小兩個文件 | 先解壓大文件,彈窗選擇小文件;或重命名為 1.rar/2.rar 再解壓 |
| Oracle/SQL Server 連接失敗 | 驅動包版本不匹配或 URL 格式錯誤 | 確認驅動包版本,Oracle 建議 ojdbc8.jar (JDK 8+) |
| 生成代碼缺少備註 | 資料庫表/字段未添加 COMMENT | 在資料庫補充 COMMENT,工具自動讀取 |