当前位置: 代码迷 >> 综合 >> Maven插件使用Mybatis Generator代码生成器简易版支持注释、Lombok、Swagger等插件
  详细解决方案

Maven插件使用Mybatis Generator代码生成器简易版支持注释、Lombok、Swagger等插件

热度:59   发布时间:2023-11-18 02:51:48.0

Github地址:GitHub - javthon/mybatis-generator-yml-maven-plugin: MyBatis Generator yml configuration, lombok plugin, swagger plugin support

在线体验:mybatis代码生成器

环境要求

  • 安装好Java8和一个IDE
  • 项目中使用了maven
  • 项目中使用了Mybatis3

如何使用

Step 1: 确保您的工程是maven工程,在您的maven pom.xml文件中添加mybatis-generator-yml-maven-plugin插件,下载插件需要等待几分钟:

<plugin><groupId>io.github.javthon</groupId><artifactId>mybatis-generator-yml-maven-plugin</artifactId><version>0.0.1</version><configuration><configurationFile>src/main/resources/generatorConfig.yml</configurationFile></configuration>
</plugin>

Step 2: 在resources目录下新建generatorConfig.yml,并将下方完整配置样例中的代码粘贴进去,按您对源码中配置的理解修改配置 或根据以下配置 说明修改配置

Step 3: 确保配置信息无误后运行mvn mybatis-generator-yml:generate,在Intellij IDEA中的maven窗口的plugins下可以找到这个命令,双击就能运行

配置

完整配置样例

mybatisGenerator:datasource:type: mysqladdress: localhost:3306db: testusername: rootpassword: roottargetPackage:model: com.example.domainmapper: com.example.daojavaXmlFilesSamePackage: truetargetRuntime: MyBatis3mapperSuffixName: mapperjava8: falsedisableExample: trueplugins:comment: truelombok: falseswagger: falsemapperAnnotation: falseserializable: falsetables:- user- role

配置概览

属性 类型 默认值 是否必须 描述
datasource Map 数据库的连接信息, 见下方的"数据源配置"
targetPackage Map 生成代码的包路径,见下方targetPackage配置
targetRuntime String MyBatis3 mybatis generator生产代码的格式,见下方targetRuntime可选项
mapperSuffixName String mapper mapper类或xml文件的后缀名,如果将此属性设置为dao,并且表名是user,它将生成UserDao.java和UserDao.xml,如果targetRuntime设置为MyBatis3DynamicSql,则此属性将不起作用
java8 Boolean false 如果为true,则生成模型日期字段将使用Java8的LocalDateTime或LocalDate,否则使用Date
disableExample Boolean true 此属性仅在targetRuntime为MyBatis3生效,为true时mapper不生成"by example"代码
plugins Map 配置是否开启注释, lombok, swagger, mapperAnnotation, serializable等插件, 详情见下方插件配置
tables List 多个表格名,配置方式见generatorConfig.yml样例

数据源配置

属性 类型 是否必须 描述
type String 数据库类型, 当前可选值为mysql, sqlserver,如果您使用的数据库不在其中,请new issues
address String IP和端口号,如:192.168.1.1:3306
db String 数据库名
username String 数据库用户名
password String 数据库密码

targetPackage配置

属性 类型 是否必须 描述
model String 生成模型的包路径, 如:com.example.domain
mapper String 生成的java接口和xml mapper的包路径, 如:com.example.mapper
javaXmlFilesSamePackage Boolean 如果是true,java接口和xml mapper会生成在一个包下,如果是false,xml mapper代码将生成至resources目录下,该属性仅在targetRuntime为MyBatis3Simple或MyBatis3时可用

插件配置

属性 类型 是否必须 描述
comment Boolean 是否开启model的注释
lombok Boolean 是否使用lombok,不生成setter和getter
swagger Boolean 是否使用swagger2注解
mapperAnnotation Boolean 是否在mapper类上加@Mapper注解
serializable Boolean 是否实现Serializable接口

targetRuntime的可选值

描述
MyBatis3DynamicSql 生成的代码依赖于MyBatis动态SQL库。 生成的代码为查询构造提供了极大的灵活性。 不生成XML。mybatis generator 1.4.0官方推荐此方式
MyBatis3 生成mapper java接口和xml配置文件。有"by example" 或者 "selective" 方法,代码比较啰嗦
MyBatis3Simple 生成mapper java接口和xml配置文件。没有"by example" 或者"selective"方法,代码较简洁

插件介绍

未使用任何插件前代码

import java.util.Date;public class Role {private Long id;private String name;private String remark;private Date createTime;private Date updateTime;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Date getUpdateTime() {return updateTime;}public void setUpdateTime(Date updateTime) {this.updateTime = updateTime;}
}

注释插件

使用后在每个字段上方生成数据库中对应字段的注释:

import java.util.Date;public class Role {/*** id*/private Long id;/*** 角色名称*/private String name;/*** 角色备注*/private String remark;/*** 创建时间*/private Date createTime;/*** 更新时间*/private Date updateTime;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Date getUpdateTime() {return updateTime;}public void setUpdateTime(Date updateTime) {this.updateTime = updateTime;}
}

lombok插件

使用本插件需要加入lombok的依赖,并且要安装开发工具对lombok支持的插件。使用本插件后没有setter和getter,大大简化了代码:

import java.util.Date;
import lombok.Data;/*** role* @author Tensorflow* @date 2020-09-08 22:24:45*/
@Data
public class Role {private Long id;private String name;private String remark;private Date createTime;private Date updateTime;
}

swagger插件

使用本插件需要加入swagger2的依赖,项目中使用swagger2作为接口测试框架的可以使用此插件:

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;@ApiModel(value="com.example.domain.Role")
public class Role {@ApiModelProperty(value="id")private Long id;@ApiModelProperty(value="角色名称")private String name;@ApiModelProperty(value="角色备注")private String remark;@ApiModelProperty(value="创建时间")private Date createTime;@ApiModelProperty(value="更新时间")private Date updateTime;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Date getUpdateTime() {return updateTime;}public void setUpdateTime(Date updateTime) {this.updateTime = updateTime;}
}

mapperAnnotation插件

在java mapper接口上添加了@Mapper注解

serializable插件

model实现了Serializable接口

Github地址:GitHub - javthon/mybatis-generator-yml-maven-plugin: MyBatis Generator yml configuration, lombok plugin, swagger plugin support

  相关解决方案