前言
在公衆号裡看到的一篇标題為"恕我直言,有了這款IDEA插件,你可能隻需要寫30%的代碼…"的文章,有點興趣,就點進去看了看,操作也都比較簡單,于是自己也嘗試了一下,建立資料庫,建立表,毫不費功夫的一套代碼都生成出來了,不過生成的代碼dao層是按照mybatis來的,大多都是使用mybatis,直接就能用了,而我項目中是使用hibernate的,這實體類的代碼要調整,dao層代碼需要改,上面文章裡沒提到這塊,在生成代碼那塊操作裡也沒找到相關設定的功能,趁着興趣還沒消退就百度了一下,随手點了這篇文章"IDE工具(23) EasyCode代碼生成器的使用教程(idea安裝配置)"翻了一翻,安裝,操作步驟基本都一樣,但裡面多了設定模闆的内容,好吧新的大門已打開,根據上面大佬的連結又翻了EasyCode的文檔,了解了Velocity模闆引擎文法,然後參考預設模闆内容寫了一套适用自己的模闆。
正文
1、安裝(EasyCode)(我本機已安裝過,安裝後注意需要重新開機idea)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLxEFVPp3Zq1EeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5MTM1ETOyQTMxIjMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2、建立資料庫和表(注意表 字段 要使用下劃線對應實體類的駝峰命名規則)
EasyCode代碼生成器的使用
3、連接配接資料庫
注意選擇對應的資料,填寫相應端口和資料庫名稱
4、生成代碼(選擇資料表點選滑鼠右鍵 --> EasyCode–>Generate Code)
勾選需要生成的代碼
基本上這樣就都搞定了
5、自定義代碼模闆(file–>settings–>other settings)
建立一個組來存放自定義模闆
建立模闆
自定義實體類模闆代碼(在預設模闆的基礎上做的一些小改動,也就是導入一些需要用到的包,加了一些注解,在周遊字段的時候判斷是否是主鍵,設定了主鍵的生成政策)
##引入宏定義
$!define
##使用宏定義設定回調(儲存位置與檔案字尾)
#save("/entity", ".java")
##使用宏定義設定包字尾
#setPackageSuffix("entity")
##使用全局變量實作預設包導入
$!autoImport
import java.io.Serializable;
##@Entity、@Table注解的包
import javax.persistence.*;
##使用宏定義實作類注釋資訊
#tableComment("實體類")
@Entity
@Table(name="$!{tableInfo.name}")
public class $!{tableInfo.name} implements Serializable {
private static final long serialVersionUID = $!tool.serial();
## 擷取主鍵(一般主鍵都是實體類名+Id)
#set($id= "$tool.firstLowerCase($!{tableInfo.name})Id")
## 周遊字段
#foreach($column in $tableInfo.fullColumn)
## 判斷是否是主鍵(因為主鍵有生成政策要設定)
#if(${column.name}==$!{id})
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY )
@Column(name = "$!{column.name}", nullable = false)
private $!{tool.getClsNameByFullName($column.type)} $!{column.name} ;
#else
@Basic
@Column(name = "$!{column.name}",nullable = true)
private $!{tool.getClsNameByFullName($column.type)} $!{column.name} ;
#end
#end
#foreach($column in $tableInfo.fullColumn)
##使用宏定義實作get,set方法
#getSetMethod($column)
#end
}
我建構了自己使用的一套模闆,其他的模闆代碼我就不貼了,因為隻是把預設的模闆拷過來在上面結合自己的使用做一些調整也沒啥難度。我本想把一些配置檔案也加進去的,但生成的目錄有些問題,由于時間關系後面再研究吧。