还在手写SQL实现?试试这款IDEA插件吧!提示太全了,还能一键生成代码!
最近发现之前使用的MyBatis插件很久都没更新了,就想换个其他插件来用用。偶然发现MyBatis-Plus团队也开发了一款插件 MyBatisX ,体验了一把确实非常好用,提示很全,而且还能通过GUI生成代码,推荐给大家!
SpringBoot实战电商项目mall(50k+star)地址: https://github.com/macrozheng/mall
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接口中对应的方法。
自动生成代码
还记得之前在mall-tiny项目中我们手写的代码生成器么,MyBatisX直接整了个带图形化界面的,下面我们来体验下。
- 选中表以后右键可以直接生成对应表的CRUD代码,当然你也可以多选,支持一次性生成多表;
- 生成的时候可以通过GUI来修改选项,比如修改基础包路径、实体类包路径等;
- 生成时选择注解和模板类型为Mybatis-Plus 3,有需要的话可以勾选Lombok选项以及修改mapper.xml的文件路径;
- 点击确认后将生成如下文件,还记得之前在mall-tiny项目中用代码写的代码生成器么,有了GUI就用不着手写了!
自定义生成模板
如果你觉得默认的代码生成器模板不符合你的要求,还可以试试自定义模板。
- 我们一般会在实体类中加入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注解的实体类;
- 生成完成后实体类就会带上Swagger注解了,是不是很方便!
JPA提示
MyBatisX还有个强大的功能,可以根据JPA风格的方法名直接生成SQL实现,无需手写SQL。
- 例如我们想写个批量插入数据方法,就可以这样来操作;
- 例如我们想写个根据名称查询品牌的方法,MyBatisX会像JPA一样自动提示字段,并且能自动生成SQL实现;
- 例如我们想写个根据ID修改品牌名称的方法;
- 例如我们想写个根据名称删除品牌的方法,MyBatisX的JPA提示还是非常全面的!
图标设置
如果你不想Mapper接口和mapper.xml文件都变成小鸟图标的话,可以做在MyBatisX的设置中进行修改。
总结
MyBatisX确实是一款非常好用的IDEA插件,不仅提示全面,而且自带了图形化的代码生成器,能极大地提高我们的开发效率。MyBatisX中的JPA提示功能也非常不错,只要你的方法命名符合JPA规范,就能自动生成SQL实现,确实是个好功能。
相关文章
- Delhivery 公司最佳实践剖析:从 Apache Kafka 迁移至 Amazon MSK
- 在 AWS 上扩展 Synopsys Proteus 光学近似修正
- 使用 Deep Graph Library 训练知识图谱嵌入
- 使用 GuardDuty 配合 Amazon Elasticsearch Service 实时监控安全态势
- AWS Glue DataBrew 正式发布 – 助您快速实现数据清洗与规范化的可视数据准备工具
- AWS 发布 AWS Glue DataBrew,让数据可视化准备工作提速达80%
- Java Scanner 类
- 使用 TensorBoard 实现 TensorFlow 训练作业可视化
- java Scanner类
- JAVA System类
- 使用 A/B 测试衡量 Amazon Personalize 推荐结果的有效性
- 新增功能 – 在 Amazon S3 中将 Amazon DynamoDB 表数据导出到您的湖内数仓,无需编写代码
- Java-Object类
- 使用 Amazon Kinesis 快速构建流式数据分析架构
- Python2.7安装mysql-Python,碰到的问题
- 宣布推出 AWS Glue DataBrew – 一种可帮助您更快地清理和标准化数据的可视化数据准备工具
- 在 Amazon SageMaker Autopilot 推理管道中部署您的自有数据处理代码
- Java----------String类
- Java String 类
- 运用上下文信息提升 Amazon Personalize 推荐结果的相关性