本文首發於西二blogs:一鍵生成mapper、mapperxml等文件——MybatisX插件的使用
搬運請務必轉載出處。
MybatisX插件使用——為快速開發而生
前言:其實很久以前我就非常厭惡寫一堆mapper、service、impl之類的重復性工作,一直希望有那么一個工具幫我干這些重復性工作。后面終於發現了這么一個寶藏插件。
以下為官方介紹:
MybatisX 是一款基於 IDEA 的快速開發插件,為效率而生。
雖然這款插件功能比較好用,但是其卻是全英文的插件,並且有些選項難以從字面意義上理解,而官方的文檔說明不夠完善,因此特撰寫本文幫助后來者排坑。
需要搭配以下一起食用
-
SpringBoot
-
MybatisPlus(也可以不搭配,但是效果就沒那么好了)
快速上手
首先在idea中的插件搜索MybatisX下載。
1.生成代碼功能
在idea中配置好數據源,右鍵需要生成代碼的表名,點擊MybatisX-Generator選項,彈出如下界面。
部分參數說明:
-
module path:模塊路徑,此處填寫項目所在路徑,生成的代碼會在相應位置。
-
basepackage:填寫項目的包
-
encoding:編碼,使用UTF-8即可
-
base path:代碼所在路徑
-
relative package:決定實體類會被生成在哪里,默認生成在domain包中,可以修改為其他包但不要為空。
-
extra class suffix:生成的實體類后面會加上里面的內容。舉例:圖中如果這里寫入Test,最后生成實體類會叫FilesTest
-
ignore xxx:生成實體類相應字段中忽略指定的前綴/后綴,以下為舉例:
- 數據庫中有字段名稱為type,若ignore field prefix參數設置為ty,則生成實體類中相應的屬性名為pe,忽略了ty;
- 數據庫名為files,若ignore table prefix設置為為fi,則生成的實體類的名字變為Les,忽略了fi
-
superClass:生成實體類繼承的父類
點擊next后,下一步為生成mapper、service等
參數說明:
-
annotation:生成的代碼中是否加上注解(例如,@TableName等注解)。None為沒有注解,其他為字面意思。
-
options各選項經過嘗試后,作用大致如下
- comment:可能和生成java doc comments有關,但試了下,好像沒有效果。
- toString/hashCode/equals:是否生成相應的方法;建議勾選。
- Lombok:勾選后實體類自動添加Lombok的@Data注解;建議勾選(建議安裝Lombok)
- Actual Column:勾選后,生成的實體類屬性名和表中字段名大小寫會保持一致。例如,表中有字段classID,勾選該選項后生成的屬性名也為classID,未勾選則為classid。建議根據實際需要勾選。
- Actual Column Annotation:是否對所有屬性名都加上注解標明對應字段,例如@TableName。建議勾選。
- JSR310:Data API:是否使用新標准的時間日期API,包括 Instant、Clock、LocalDateTime、DateTimeFormatter、ZonedDateTime 以及替換 Calendar 的 Chronology 等類。建議勾選(新標准的時間日期API比老版本友好多了,強烈建議使用新版時間日期API)。
-
template:生成mapper、service等相關代碼所使用的模板。template可以修改,默認位於 草稿和控制台——擴展——MybatisX 。對應文件夾內即為相關模板的具體配置文件。如果需要重置,右鍵template文件夾點擊重置默認擴展即可。
如果沒有使用MybatisPlus,可以選擇default-empty模板。或自定義其他模板。
最底下的表:顯示所要生成文件的類型、模塊路徑、基本路徑、生成后位於哪個包。后面三個列都可以修改值以符合項目需要。這些也可以在對應的template的文件夾內的.meta.xml中進行修改。
點擊Finish即完成對應代碼的生成。
2.xml跳轉功能
安裝該插件后,對應的mapper和mapperxml圖標變成藍鳥和紅鳥。在代碼行號的右側點擊相應的藍鳥和紅鳥圖標即可快速跳轉到對應部分,方便修改。(如果代碼使用@Insert等注解而不是在xml中實現SQL代碼,則左側不會顯示相應圖標)
3.JPA提示(代碼自動補全,同時在xml中生成對應的SQL語句)
這點官方文檔中的動圖演示的非常清晰了,這里就不再贅述。
MybatisX 快速開發插件 | MyBatis-Plus (baomidou.com)
結語
以上就是MybatisX插件的食用方法,希望大家能通過這個插件來有效的提升自己的效率,把時間花在刀刃上,減少一些重復性的工作。