EasyCode能做什么?
EasyCode是基於IntelliJ IDEA Ultimate版開發的一個代碼生成插件,主要通過自定義模板(基於velocity)來生成各種你想要的代碼。通常用於生成Entity、Dao、Service、Controller。如果你動手能力強還可以用於生成HTML、JS、PHP等代碼。理論上來說只要是與數據有關的代碼都是可以生成的。
使用環境
IntelliJ IDEA Ultimate版(172+)
支持的數據庫類型
因為是基於Database Tool開發,所有Database Tool支持的數據庫都是支持的。
包括如下數據庫:
- MySQL
- SQL Server
- Oracle
- PostgreSQL
- Sqlite
- Sybase
- Derby
- DB2
- HSQLDB
- H2
當然支持的數據庫類型也會隨着Database Tool插件的更新同步更新。
功能說明:
- 支持多表同時操作
- 支持同時生成多個模板
- 支持自定義模板
- 支持自定義類型映射(支持正則)
- 支持自定義擴展屬性
- 支持對表屬性進行手動配置
- 所有配置項目支持分組模式,在不同項目(或選擇不同數據庫時),只需要切換對應的分組,所有配置統一變化。
安裝方法
- 該插件正在添加到官網插件倉庫中,現在只能手動安裝,添加完畢后直接在搜索框搜索安裝。
- 手動安裝方法如下:
- 點擊這里 ,下載最新的發行版本。
- 然后進入到File->Settings->Plugins,點擊Install plugin from disk...
- 找到你下載好的安裝包即可安裝
- 安裝完后重啟即可
倉庫直接安裝
由於官網審核較慢,通常會比發行版慢兩天更新
安裝方法:手寫點擊Browse repositories... 搜索 Easy Code
注意:請認准5顆星的Easy Code,兩顆星的是我之前發布的老版本(由於賬號丟失,不再更新維護)
使用方法
- 簡單的生成代碼
首先在IDEA右邊找到數據庫工具,點擊加號添加好對應的數據源
接着在要生成表上面右鍵,就可以看到EasyCode菜單,以及子菜單(Generate Code,Config Table)生成代碼與配置表。
- 多表代碼生成 可以按住Ctrl鍵同時選擇多張表進行操作。
注意:多選的情況下配置信息取首選表(選中的第一張表)。
統一配置解釋:勾選代表所有選中表統一用這個配置去生成代碼,否則只有沒配置過表的使用這個配置生成,已配置的使用自己的配置。
(注意:沒配置過的表在生成代碼后都會復用該配置,成為已配置的表)
添加類型映射
在Other Seeting中可以看到如下配置信息,上面部分是分組信息,可以復制分組,刪除分組。
下面的表格是類型映射信息:左邊是數據庫類型(支持正則),右邊是對應的java類型(必須為全稱)。可以新增刪除
模板配置說明
采用velocit語法編寫
說明文檔:
屬性
$packageName 選擇的包名(String) $author 設置中的作者(String) $encode 設置的編碼(String) $modulePath 選中的module路徑(String) $projectPath 項目路徑(String) 對象 $tableInfo 表對象(TableInfo) obj 表原始對象(DasColumn,下面有貼圖) name 表名(轉換后的首字母大寫)(String) comment 表注釋(String) fullColumn 所有列(List<ColumnInfo>) pkColumn 主鍵列(List<ColumnInfo>) otherColumn 其他列(List<ColumnInfo>) savePackageName 保存的包名(String) savePath 保存路徑(String) saveModelName 保存的model名稱(String) columnInfo 列對象(ColumnInfo) obj 列原始對象(DbTable,下面有貼圖) name 列名(首字母小寫)(String) comment 列注釋(String) type 列類型(類型全名)(String) ext 附加字段(Map類型)(Map<String,Object>) $tableInfoList 所有選中的表(List<TableInfo>) $importList 所有需要導入的包集合(Set<String>) 回調 &callback setFileName(String) 設置文件儲存名字 setSavePath(String) 設置文件儲存路徑,默認使用選中路徑 工具 $tool firstUpperCase(String) 首字母大寫方法 firstLowerCase(String) 首字母小寫方法 getClsNameByFullName(String) 通過包全名獲取類名 getJavaName(String) 將下划線分割字符串轉駝峰命名(屬性名) getClassName(String) 將下划線分割字符串轉駝峰命名(類名) append(... Object) 多個數據進行拼接 $time currTime(String) 獲取當前時間,指定時間格式(默認:yyyy-MM-dd HH:mm:ss)
高級貨在這里
在這里添加自定義屬性,這些屬性都是可以動態配置的,而且還可以在模板中獲取到這個屬性。
這里的關系都是一一對應的,例如:如果配置了disabled屬性就可以在columnInfo.ext中拿到你設置的值(如:columnInfo.ext.disabled)
配置信息儲存在哪里?
使用版本控制的開發人員可加這些信息不要添加至忽略(以便共享配置信息)
軟件處於1.0版難免會出現問題,手動修改這里可能可以解決一些問題,請諒解。
下面針對自己的項目做定制化配置:
全局配置去掉表前綴:
在每個代碼模板加$!init,以entity為例: