以前有很多小夥伴問鬆哥微人事項目(https://github.com/lenve/vhr)... MyBatis 逆向工程在哪裏?其實舊版微人事當時沒有使用逆向工程,是我本身手動敲出來的,固然手動敲的工做量很是大。html
今年發出來的新版微人事,我使用了逆向工程自動生成實體類和 dao 層的代碼。MyBatis 的逆向工程要麼須要添加依賴,要麼須要本身去網上下載 jar,用起來仍是有點麻煩,因此,今天和小夥伴們介紹一款 IntelliJ IDEA 上的免費開源插件,叫作 EasyCode,能夠方便的根據數據庫生成相應的代碼。java
EasyCode 是基於 IntelliJ IDEA 開發的代碼生成插件,支持自定義任意模板(Java,html,js,xml);只要是與數據庫相關的代碼均可以經過自定義模板來生成;支持數據庫類型與 java 類型映射關係配置;支持同時生成生成多張表的代碼,張表有獨立的配置信息,徹底的個性化定義,規則由你設置。git
我本身也稍微體驗了一把,仍是蠻方便的。github
首先點擊 File->Settings->Plugins,而後搜索 EasyCode,以下:spring
安裝成功以後,重啓 IDEA。數據庫
接下來我給你們演示一個如何在 Spring Boot 中使用 EasyCode。首先咱們在 IDEA 中建立一個 SpringBoot 項目,建立過程我就很少說了,若是你們不會,能夠在我公衆號後臺回覆 springboot
,有詳細的教程。springboot
因爲這個項目是基於 IDEA 上的 Database Tools 開發的,所以咱們首先要經過 IDEA 上的 Database 鏈接數據源。app
接下來配置你的數據庫鏈接信息,若是沒有檢測到合適的數據庫 Driver,點擊左下角自動下載:工具
鏈接成功後,點擊 OK。默認狀況下沒有展現鏈接下的數據庫,須要咱們手動勾選,例如我這裏要鏈接 vhr 數據庫,以下:spa
作完前面三步,準備工做就算 OK 了,接下來就是生成代碼了。例如我想給 vhr 中全部的代碼生成實體類、dao 層以及 service 層,方式以下:
首先選中全部的表,而後右鍵單擊,選擇 Easy Code->Generate Code,以下:
第一次添加的時候,若是有數據庫類型沒有對應的 Java 類型,就會有提示,這個根據它的引導去添加映射關係便可,例如我在添加的時候,出了一個這個提示:
點擊 Yes,而後去添加本身的類型映射:
添加成功以後,再去作代碼生成,這下就能夠了:
這裏,若是項目是多模塊項目,能夠先選擇代碼生成的 Module,而後設置代碼生成的 package,最後從下面勾選要生成的代碼模版,點擊 OK 便可。
在代碼生成的過程當中,若是沒檢測到 package 下面有 service、dao 以及 entity 等包,工具會提示自動建立,點擊 Yes 便可。
最終生成的代碼以下:
至此,各層的代碼基本都生成了。大部分小夥伴用到這一步可能就 OK 了。
固然若是你以爲 EasyCode 自動生成的模版不夠用,或者很差用,咱們也能夠自定義模版。
例如,我想在生成的 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。
接下來再去從新生成代碼,就能夠看到生成的方法中多了一個方法了,其餘代碼模版的定義與這個相似,我就再也不贅述了。
好了,小夥伴們不妨試試。