引入依赖
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<!--generator-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.1</version>
</dependency>
Generator类
创建Generator类,一般放在项目根目录下,Spring项目中放置与启动类平级
package com.greenjiao.coc;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.ibatis.annotations.Mapper;
public class Generator {
private static final String url="jdbc:mysql://localhost:3306/coc?serverTimezone=Asia/Shanghai";
private static final String username="root";
private static final String password="yourpassword";
public static void main(String[] args) {
FastAutoGenerator.create(url,username,password)
/*
全局配置
*/
.globalConfig(builder -> {
builder.author("yan")
// 输出目录
.outputDir("E:\\JavaProject")
// 开启swagger模式
.enableSwagger()
// 时间策略
.dateType(DateType.TIME_PACK)
// 注释日期格式
.commentDate("yyyy-MM-dd");
})
/*
包配置
*/
.packageConfig(builder -> {
builder.parent("com.greenjiao") // 父包名
.moduleName("coc") // 模块名
.entity("bean") // 实体类包名
.service("service") // service包名
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper.xml")
.controller("controller");
})
/*
策略配置
*/
.strategyConfig(builder -> {
builder.enableSkipView()
.disableSqlFilter()
// 添加匹配表名,等于这个名称才会自动生成代码,如果需要直接生成一个库中所有表可以不要匹配规则
// 当然还有其他匹配规则,请前往官网查看
.addInclude("gender");
})
/*
实体类策略配置
*/
.strategyConfig(builder -> {
builder.entityBuilder()
.enableFileOverride()
.disableSerialVersionUID() //禁用生成 serialVersionUID
.enableChainModel() //开启链式模型
.enableLombok() //开启 lombok
.enableTableFieldAnnotation() //开启生成字段注解
//数据表映射到实体命名策略,下划线转驼峰命名
.naming(NamingStrategy.underline_to_camel)
//字段映射命名策略
.columnNaming(NamingStrategy.underline_to_camel)
//主键策略,为空则雪花算法
.idType(IdType.ASSIGN_ID);
})
/*
Controller策略配置
*/
.strategyConfig(builder -> {
builder.controllerBuilder()
.enableFileOverride()
.enableHyphenStyle()
.enableRestStyle()
.formatFileName("%sController");
})
/*
Service策略配置
*/
.strategyConfig(builder -> {
builder.serviceBuilder()
.enableFileOverride()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImp");
})
/*
Mapper策略配置
*/
.strategyConfig(builder -> {
builder.mapperBuilder()
.enableFileOverride()
// enableMapperAnnotation 将弃用,改为mapperAnnotation
.mapperAnnotation(Mapper.class)
.enableBaseResultMap()
.enableBaseColumnList()
.formatMapperFileName("%sMapper")
.formatXmlFileName("%sMapper");
})
.execute();
}
}
添加完Generator类后运行他即可自动生成代码,本文主要是记录,我是可以正常使用的,如果你有哪里用不了请说明原因我也可以帮忙看看
版本尽量使用最新的,但是最新的版本又跟旧的不一样,挺多参考的都有问题,所以我搞了半天
官方文档
附上官方地址,官方的github项目中也有样例,不过讲实话我觉得emm...还是要试挺久的,毕竟没人讲解。
可以参考我写的这个Generator再琢磨一下,欢迎提问,教学相长