1. 程式人生 > >懶人必備,IntelliJ IDEA中程式碼一鍵生成

懶人必備,IntelliJ IDEA中程式碼一鍵生成

之前有不少小夥伴問鬆哥微人事專案(https://github.com/lenve/vhr)使用的 MyBatis 逆向工程在哪裡?其實舊版微人事當時沒有使用逆向工程,是我自己手動敲出來的,當然手動敲的工作量非常大。

今年發出來的新版微人事,我使用了逆向工程自動生成實體類和 dao 層的程式碼。MyBatis 的逆向工程要麼需要新增依賴,要麼需要自己去網上下載 jar,用起來還是有點麻煩,所以,今天和小夥伴們介紹一款 IntelliJ IDEA 上的免費開源外掛,叫做 EasyCode,可以方便的根據資料庫生成相應的程式碼。

EasyCode 是基於 IntelliJ IDEA 開發的程式碼生成外掛,支援自定義任意模板(Java,html,js,xml);只要是與資料庫相關的程式碼都可以通過自定義模板來生成;支援資料庫型別與 java 型別對映關係配置;支援同時生成生成多張表的程式碼,張表有獨立的配置資訊,完全的個性化定義,規則由你設定。

我自己也稍微體驗了一把,還是蠻方便的。

1.安裝

首先點選 File->Settings->Plugins,然後搜尋 EasyCode,如下:

安裝成功之後,重啟 IDEA。

2.建立專案

接下來我給大家演示一個如何在 Spring Boot 中使用 EasyCode。首先我們在 IDEA 中建立一個 SpringBoot 專案,建立過程我就不多說了,如果大家不會,可以在我公眾號後臺回覆 springboot,有詳細的教程。

3.新增資料來源

由於這個專案是基於 IDEA 上的 Database Tools 開發的,因此我們首先要通過 IDEA 上的 Database 連線資料來源。

接下來配置你的資料庫連線資訊,如果沒有檢測到合適的資料庫 Driver,點選左下角自動下載:

連線成功後,點選 OK。預設情況下沒有展示連線下的資料庫,需要我們手動勾選,例如我這裡要連線 vhr 資料庫,如下:

4.生成程式碼

做完前面三步,準備工作就算 OK 了,接下來就是生成程式碼了。例如我想給 vhr 中所有的程式碼生成實體類、dao 層以及 service 層,方式如下:

首先選中所有的表,然後右鍵單擊,選擇 Easy Code->Generate Code,如下:

第一次新增的時候,如果有資料庫型別沒有對應的 Java 型別,就會有提示,這個根據它的引導去新增對映關係即可,例如我在新增的時候,出了一個這個提示:

點選 Yes,然後去新增自己的型別對映:

新增成功之後,再去做程式碼生成,這下就可以了:

這裡,如果專案是多模組專案,可以先選擇程式碼生成的 Module,然後設定程式碼生成的 package,最後從下面勾選要生成的程式碼模版,點選 OK 即可。

在程式碼生成的過程中,如果沒檢測到 package 下面有 service、dao 以及 entity 等包,工具會提示自動建立,點選 Yes 即可。

最終生成的程式碼如下:

至此,各層的程式碼基本都生成了。大部分小夥伴用到這一步可能就 OK 了。

當然如果你覺得 EasyCode 自動生成的模版不夠用,或者不好用,我們也可以自定義模版。

5.自定義模版

例如,我想在生成的 dao 層程式碼中,額外新增一個不需要任何條件,獲取所有資料的方法(預設的生成模版中沒有這個方法)。

點選 File->Settings->Easy Code->Template Setting:

可以參考工具自己的定義方式,我們現在先在dao.java 中,新增如下方法:

/**
 * 查詢所有資料
 *
 * @param $!tool.firstLowerCase($!{tableInfo.name}) 例項物件
 * @return 物件列表
 */
List<$!{tableInfo.name}> getAll();

然後再給它新增一個配套的 mapper.xml 中的方法,開啟 mapper.xml ,新增如下方法:

<select id="getAll" resultMap="$!{tableInfo.name}Map">
    select
      #allSqlColumn()
    from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name
</select>

配置完成後,點選 OK。

接下來再去重新生成程式碼,就可以看到生成的方法中多了一個方法了,其他程式碼模版的定義與這個類似,我就不再贅述了。

好了,小夥伴們不妨試試