package com.test.mybatis_plus_tes/*
官方代码生成器配置文档 https://baomidou.com/pages/981406/
CodeGenerator类放在spring boot启动类同级目录下run
添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!--默认模板引擎velocity, 还支持Freemarker、Beetl, 都需要引入依赖(使用其他引擎详情见官网)-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
<!-- freemarker 模板引擎 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
<!-- 开启 swagger 所需依赖 -->
<!-- 用法 https://www.cnblogs.com/Rohmi/p/16168622.html-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<!-- 开启 Lombok 所需依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
*/
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CodeGenerator {
public static void main(String[] args) {
List<String> tables = new ArrayList<>(); // 配置要生成的表名
tables.add("sys_user");
tables.add("sys_order");
tables.add("sys_goods");
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatisplustest?serverTimezone=UTC","root","root")
.globalConfig(builder -> {
builder.author("Rohmi") // 作者
.outputDir(System.getProperty("user.dir")+"\\src\\main\\java") // 输出路径(写到java目录)
.enableSwagger() // 开启swagger,记得引入依赖并添加配置文件swagger2
.commentDate("yyyy-MM-dd")
.fileOverride(); // 开启覆盖之前生成的文件
})
.packageConfig(builder -> {
builder.parent("com.test") // /src/main/java/***
.moduleName("mybatis_plus_test") // /src/main/java/↑↑↑/***
.entity("entity")
.service("service")
.serviceImpl("serviceImpl")
.controller("controller")
.mapper("mapper")
.xml("mapper")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml,System.getProperty("user.dir")+"\\src\\main\\resources\\mapper"));
})
.strategyConfig(builder -> {
builder.addInclude(tables)
.addTablePrefix("sys_") // 过滤表名前缀
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.entityBuilder()
.enableLombok() // 开启Lombok
.logicDeleteColumnName("deleted") // 逻辑删除字段名
.enableTableFieldAnnotation() // .versionColumnName("version") // 乐观锁字段名
.controllerBuilder()
.formatFileName("%sController")
.enableRestStyle() // 开启RestController
.mapperBuilder()
.enableBaseResultMap() // 生成通用的resultMap
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper");
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}