⼀键⽣成mapper、mapperxml等⽂件——MybatisX插件的使⽤
本⽂⾸发于西⼆blogs:
搬运请务必转载出处。
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)jpa mybatis
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 的⽂件夹内的.l中进⾏修改。
点击Finish即完成对应代码的⽣成。
安装该插件后,对应的mapper和mapperxml图标变成蓝鸟和红鸟。在代码⾏号的右侧点击相应的蓝鸟
和红鸟图标即可快速跳转到对应部分,⽅便修改。(如果代码使⽤@Insert等注解⽽不是在xml中实现SQL代码,则左侧不会显⽰相应图标)
3.JPA提⽰(代码⾃动补全,同时在xml中⽣成对应的SQL语句)
这点官⽅⽂档中的动图演⽰的⾮常清晰了,这⾥就不再赘述。
结语
以上就是MybatisX插件的⾷⽤⽅法,希望⼤家能通过这个插件来有效的提升⾃⼰的效率,把时间花在⼑刃上,减少⼀些重复性的⼯作。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。