pom依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
单模块项目
package com.mybatis.plus.util;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.IFill;
import com.baomidou.mybatisplus.generator.config.ConstVal;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.TemplateType;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SingleModuleGenerator {
static String url = "jdbc:mysql://localhost:3306/mybatis";
static String username = "root";
static String password = "123456";
static String outputDir = System.getProperty("user.dir") + "/src/main/java";
static String author = "mybatis-plus-generator";
static DateType dateType = DateType.TIME_PACK;
static String commentDate = "yyyy-MM-dd HH:mm:ss";
static String parentPackage = "com.mybatis.plus";
static String moduleName = "";
static String controllerPackage = "controller";
static String servicePackage = "service";
static String serviceImplPackage = "service.impl";
static String entityPackage = "entity";
static String mapperPackage = "mapper";
static String xmlPackage = System.getProperty("user.dir") + "/src/main/resources" + "/mybatis/mapper";
static String other = "other";
static TemplateType[] disableTemplateType = {
TemplateType.SERVICE,
TemplateType.SERVICEIMPL,
TemplateType.CONTROLLER
};
static String[] tableNames = {"mybatis_plus_generator"};
static String tablePrefix = "mybatis_plus_";
static String tableSuffix = "";
static String fieldPrefix = "";
static String fieldSuffix = "";
static String controllerSuperClass = "";
static String formatControllerName = "%sController";
static String superServiceClass = "";
static String superServiceImplClass = "";
static String formatServiceFileName = "%sService";
static String formatServiceImplFileName = "%sServiceImpl";
static String mapperSuperClass = "";
static String formatMapperFileName = "%sMapper";
static String formatXmlFileName = "%sMapper";
static String entitySuperClass = "";
static String versionColumnName = "";
static String versionPropertyName = "";
static String logicDeleteColumnName = "";
static String logicDeletePropertyName = "";
static String[] superEntityColumns = {};
static String[] ignoreColumns = {};
static List<IFill> fillColumns = new ArrayList<IFill>(){{
add(new Column("create_time", FieldFill.INSERT));
add(new Column("create_user", FieldFill.INSERT));
add(new Column("modify_time", FieldFill.UPDATE));
add(new Column("modify_user", FieldFill.UPDATE));
}};
static String formatFileName = "%s";
public static void main(String[] args) {
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> builder
.disableOpenDir()
.outputDir(outputDir)
.author(author)
.dateType(dateType)
.commentDate(commentDate)
.enableSwagger()
.build())
.packageConfig(builder -> builder
.parent(parentPackage)
.moduleName(moduleName)
.controller(controllerPackage)
.service(servicePackage)
.serviceImpl(serviceImplPackage)
.mapper(mapperPackage)
.entity(entityPackage)
.other(other)
.pathInfo(Collections.singletonMap(OutputFile.xml, xmlPackage))
.build())
.templateConfig(builder -> builder
.disable(disableTemplateType)
.build()
)
.strategyConfig(builder -> builder
.addInclude(tableNames)
.addTablePrefix(tablePrefix)
.addTableSuffix(tableSuffix)
.addFieldPrefix(fieldPrefix)
.addFieldSuffix(fieldSuffix)
.controllerBuilder()
.fileOverride()
.superClass(controllerSuperClass)
.enableRestStyle()
.formatFileName(formatControllerName)
.serviceBuilder()
.fileOverride()
.superServiceClass(StringUtils.isEmpty(superServiceClass) ? ConstVal.SUPER_SERVICE_CLASS : superServiceClass)
.superServiceImplClass(StringUtils.isEmpty(superServiceImplClass) ? ConstVal.SUPER_SERVICE_IMPL_CLASS : superServiceImplClass)
.formatServiceFileName(formatServiceFileName)
.formatServiceImplFileName(formatServiceImplFileName)
.mapperBuilder()
.fileOverride()
.superClass(StringUtils.isEmpty(mapperSuperClass) ? ConstVal.SUPER_MAPPER_CLASS : mapperSuperClass)
.enableBaseResultMap()
.enableBaseColumnList()
.formatMapperFileName(formatMapperFileName)
.formatXmlFileName(formatXmlFileName)
.entityBuilder()
.fileOverride()
.superClass(entitySuperClass)
.enableLombok()
.enableTableFieldAnnotation()
.enableActiveRecord()
.versionColumnName(versionColumnName)
.versionPropertyName(versionPropertyName)
.logicDeleteColumnName(logicDeleteColumnName)
.logicDeletePropertyName(logicDeletePropertyName)
.addSuperEntityColumns(superEntityColumns)
.addIgnoreColumns(ignoreColumns)
.addTableFills(fillColumns)
.formatFileName(formatFileName)
.build())
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}
多模块项目
package com.mybatis.plus.util;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.IFill;
import com.baomidou.mybatisplus.generator.config.ConstVal;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.TemplateType;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import java.util.*;
public class MultiModuleGenerator {
static String url = "jdbc:mysql://localhost:3306/mybatis";
static String username = "root";
static String password = "123456";
static String outputDir = System.getProperty("user.dir") + "/src/main/java";
static String author = "mybatis-plus-generator";
static DateType dateType = DateType.TIME_PACK;
static String commentDate = "yyyy-MM-dd HH:mm:ss";
static String entityPackageName = "com.generator.entity";
static String mapperPackageName = "com.generator.mapper";
static String servicePackageName = "com.generator.service";
static String serviceImplPackageName = "com.generator.service.impl";
static String controllerPackageName = "com.generator.controller";
public static Map<OutputFile, String> pathInfo() {
String basePath = System.getProperty("user.dir");
String javaPath = "/src/main/java";
String resourcePath = "/src/main/resources";
String xmlProject = "";
String entityProject = "";
String mapperProject = "";
String serviceProject = "";
String serviceImplProject = "";
String controllerProject = "";
String xmlPackage = "/mybatis/mapper";
String entityPackage = "/com.generator/entity";
String mapperPackage = "/com.generator/mapper";
String servicePackage = "/com.generator/service";
String serviceImplPackage = "/com.generator/service/impl";
String controllerPackage = "/com.generator/controller";
Map<OutputFile, String> pathInfo = new HashMap<>(6);
pathInfo.put(OutputFile.xml, basePath + xmlProject + resourcePath + xmlPackage);
pathInfo.put(OutputFile.entity, basePath + entityProject + javaPath + entityPackage);
pathInfo.put(OutputFile.mapper, basePath + mapperProject + javaPath + mapperPackage);
pathInfo.put(OutputFile.service, basePath + serviceProject + javaPath + servicePackage);
pathInfo.put(OutputFile.serviceImpl, basePath + serviceImplProject + javaPath + serviceImplPackage);
pathInfo.put(OutputFile.controller, basePath + controllerProject + javaPath + controllerPackage);
return pathInfo;
}
static TemplateType[] disableTemplateType = {
TemplateType.SERVICE,
TemplateType.SERVICEIMPL,
TemplateType.CONTROLLER
};
static String[] tableNames = {"mybatis_plus_generator"};
static String tablePrefix = "mybatis_plus_";
static String tableSuffix = "";
static String fieldPrefix = "";
static String fieldSuffix = "";
static String controllerSuperClass = "";
static String formatControllerName = "%sController";
static String superServiceClass = "";
static String superServiceImplClass = "";
static String formatServiceFileName = "%sService";
static String formatServiceImplFileName = "%sServiceImpl";
static String mapperSuperClass = "";
static String formatMapperFileName = "%sMapper";
static String formatXmlFileName = "%sMapper";
static String entitySuperClass = "";
static String versionColumnName = "";
static String versionPropertyName = "";
static String logicDeleteColumnName = "";
static String logicDeletePropertyName = "";
static String[] superEntityColumns = {};
static String[] ignoreColumns = {};
static List<IFill> fillColumns = new ArrayList<IFill>(){{
add(new Column("create_time", FieldFill.INSERT));
add(new Column("create_user", FieldFill.INSERT));
add(new Column("modify_time", FieldFill.UPDATE));
add(new Column("modify_user", FieldFill.UPDATE));
}};
static String formatFileName = "%s";
public static void main(String[] args) {
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> builder
.disableOpenDir()
.outputDir(outputDir)
.author(author)
.dateType(dateType)
.commentDate(commentDate)
.enableSwagger()
.build())
.packageConfig(builder -> builder
.controller(controllerPackageName)
.service(servicePackageName)
.serviceImpl(serviceImplPackageName)
.mapper(mapperPackageName)
.entity(entityPackageName)
.pathInfo(pathInfo())
.build())
.templateConfig(builder -> builder
.disable(disableTemplateType)
.build()
)
.strategyConfig(builder -> builder
.addInclude(tableNames)
.addTablePrefix(tablePrefix)
.addTableSuffix(tableSuffix)
.addFieldPrefix(fieldPrefix)
.addFieldSuffix(fieldSuffix)
.controllerBuilder()
.fileOverride()
.superClass(controllerSuperClass)
.enableRestStyle()
.formatFileName(formatControllerName)
.serviceBuilder()
.fileOverride()
.superServiceClass(StringUtils.isEmpty(superServiceClass) ? ConstVal.SUPER_SERVICE_CLASS : superServiceClass)
.superServiceImplClass(StringUtils.isEmpty(superServiceImplClass) ? ConstVal.SUPER_SERVICE_IMPL_CLASS : superServiceImplClass)
.formatServiceFileName(formatServiceFileName)
.formatServiceImplFileName(formatServiceImplFileName)
.mapperBuilder()
.fileOverride()
.superClass(StringUtils.isEmpty(mapperSuperClass) ? ConstVal.SUPER_MAPPER_CLASS : mapperSuperClass)
.enableBaseResultMap()
.enableBaseColumnList()
.formatMapperFileName(formatMapperFileName)
.formatXmlFileName(formatXmlFileName)
.entityBuilder()
.fileOverride()
.superClass(entitySuperClass)
.enableLombok()
.enableTableFieldAnnotation()
.enableActiveRecord()
.versionColumnName(versionColumnName)
.versionPropertyName(versionPropertyName)
.logicDeleteColumnName(logicDeleteColumnName)
.logicDeletePropertyName(logicDeletePropertyName)
.addSuperEntityColumns(superEntityColumns)
.addIgnoreColumns(ignoreColumns)
.addTableFills(fillColumns)
.formatFileName(formatFileName)
.build())
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}