1.MybatisX简介
MybatisX是一款基于IDEA的快速开发插件,由MyBatis-Plus团队开发维护,为效率而生。
它的主要功能如下:
支持mapper.xml和Mapper接口之间方法的互相导航跳转;
内置代码生成器,通过使用GUI的形式,能根据数据库来生成Domain、mapper.xml、Mapper、Service和Service实现类代码;
可以自定义代码生成器模板;
可以通过类似JPA的方式,直接根据方法名称在mapper.xml中生成查询实现,同时支持提示。
使用
接下来介绍下MybatisX的使用,这里以我的脚手架项目mall-tiny为例。
安装
在使用前我们需要在插件市场中搜索并安装MyBatisX插件。
安装完成后我们会发现所有的Mapper接口和mapper.xml文件都变成了MyBatis的小鸟图标。
XML与接口互跳
我们点击Mapper接口方法左侧的图标可以直接跳转到mapper.xml对应的SQL实现,在mapper.xml点击左侧图标也可以直接跳转到Mapper接口中对应的方法。
(可以是实现Mapper跳转到对应方法中的功能)
2.自动生成代码
MyBatisX直接整了个带图形化界面的,下面我们来体验下。
选中表以后右键可以直接生成对应表的CRUD代码,当然你也可以多选,支持一次性生成多表;
写入host和账号密码之后点击测试即可;第一次可能会下载驱动程序大家正常下载即可;
测试通过我们保存即可;
生成的时候可以通过修改选项,比如修改基础包路径、实体类包路径等;
默认是这样的
生成到同路径的子包下面
生成时选择注解和模板类型为Mybatis-Plus 3,有需要的话可以勾选Lombok选项以及修改mapper.xml的文件路径;
单独生成一个文件夹
点击确认后将生成如下文件
自定义生成模板
如果你觉得默认的代码生成器模板不符合你的要求,还可以试试自定义模板。
我们一般会在实体类中加入Swagger的注解,方便API文档的生成,MyBatisX默认生成的实体类是不带Swagger注解的;
MyBatisX也提供了生成带Swagger注解的实体类模板,但是有点复杂不太符合我的要求,我们可以修改下生成模板,生成模板都在extensions->MyBaitsX目录下;
这里我们修改下domain.ftl文件即可,最终文件内容如下;
package ${domain.packageName}; import java.io.Serializable; <#list tableClass.importList as fieldType>${"\n"}import ${fieldType};</#list> import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import com.baomidou.mybatisplus.annotation.TableName; /** * ${tableClass.remark!} */ @Data @EqualsAndHashCode(callSuper = false) @TableName("${tableClass.tableName}") @ApiModel(value="${tableClass.shortClassName}对象", description="${tableClass.remark!}") public class ${tableClass.shortClassName} implements Serializable { private static final long serialVersionUID=1L; <#list tableClass.allFields as field> @ApiModelProperty("${field.remark!}") private ${field.shortTypeName} ${field.fieldName}; </#list> }
生成完成后实体类就会带上Swagger注解了,是不是很方便!