1、添加依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
2、编写生成器类:
package com.xfusion.solve.generator;
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.config.rules.DateType;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author hansc
* @since 2023/1/4
*/
public class MybatisPlusGenerator {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/solution?characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&noAccessToProcedureBodies=true&serverTimezone=GMT%2B8";
String userName = "root";
String password = "root";
List<String> tables = Arrays.asList(
"a", "b", "c", "d", "e"
);
FastAutoGenerator.create(url, userName, password)
// 全局配置
.globalConfig(
builder -> {
builder.fileOverride() //开启覆盖之前生成的文件
.disableOpenDir() //禁止打开输出目录
.outputDir(System.getProperty("user.dir") + "\\src\\main\\java") //指定生成目录
.author("hansc") //作者
.dateType(DateType.TIME_PACK) //时间策略
.commentDate("yyyy-MM-dd"); //注释日期
})
// 包配置
.packageConfig(builder -> {
builder.parent("com.xfusion.solve") //父包名
.entity("bean") //Entity 包名
.service("service") //Service 包名
.serviceImpl("service.impl") //Service Impl 包名
.mapper("mapper") //Mapper 包名
.xml("mapper.xml") //Mapper XML 包名
.controller("controller") //Controller 包名
.other("config") //自定义文件包名 输出自定义文件时所用到的包名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "\\src\\main\\resources\\mapper"));//指定xml位置
})
//策略配置
.strategyConfig(builder -> {
builder.addInclude(tables)
.addTablePrefix("t_") //表名前缀,配置后生成的代码不会有此前缀
.serviceBuilder()
.formatServiceFileName("%sService") //服务层接口名后缀
.formatServiceImplFileName("%sServiceImpl") //服务层实现类名后缀
.entityBuilder()
.formatFileName("%sDTO")
.enableTableFieldAnnotation() //加上字段注解@TableField
.controllerBuilder()
.formatFileName("%sController") //控制类名称后缀
.enableRestStyle()
.mapperBuilder()
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper");
})
.execute();
}
}
完成