1、添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2、编写生成代码工具类
package com.mango.admin.utils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.io.File;
/**
* @ Author : GM
* @ Date : Created in 2022/5/20 18:55
* @ Description : 代码生成
*/
public class MybatisGenerator {
private static final String URL = "jdbc:mysql://localhost:3306/mango?useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&autoReconnect=true&characterEncoding=utf-8";
private static final String USERNAME = "root";
private static final String PASSWORD = "root";
/**
* 自动生成代码输出目录,这里默认类路径下的src/test/java/com/universe包下,即当前工程的test目录下。
*/
private static final String OUTPUT_DIR = System.getProperty("user.dir") + File.separator + "mango-admin/src/main/java/com/mango/admin";
/**
* @ Author : GM
* @ date : Created in 2022/5/23 15:00
* @ Description : mybatis-plug 生成代码
*/
public static void main(String[] args) {
FastAutoGenerator.create(URL, USERNAME, PASSWORD)
// 开启fileOverrride覆盖旧文件,disableOpenDir禁用代码生成后打开输出目录对话框
.globalConfig(builder -> builder.author("gaomiao").fileOverride().disableOpenDir().outputDir(OUTPUT_DIR))
// parent指定生成的代码在哪个包下,entity可以指定实体(DO)所在的包名
.packageConfig(builder -> builder.parent("com.mango.admin").entity("dao.entity"))
// addInclude指定包含的表名,不调用该方法默认为所有表生成代码;addTablePrefix可以过滤表前缀,即t_user变成user
.strategyConfig(builder -> builder.addInclude("sys_user")
//开启rest风格
.controllerBuilder().enableRestStyle()
// 禁用为实体类生成序列化ID;formatFileName格式化生成的实体类名称,即t_user -> UserDO
.entityBuilder().disableSerialVersionUID().enableLombok()
// formatMapperFileName格式化Mapper接口名称,即t_user -> UserMapper
// formatXmlFileName格式化Mapper.xml文件名称,即t_user -> UserMapper.xml
.mapperBuilder().formatMapperFileName("%sMapper").formatXmlFileName("%sMapper")
.enableBaseColumnList().enableBaseResultMap().enableBaseColumnList()
.build()
)
// MyBatis-Plus代码生成器是通过模板引擎来渲染文件的,默认模板引擎是Velocity,根据依赖我们使用Freemarker
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}
3、文件目录