1、创建springboot项目
2、引入pom文件
<!--mybatis-plus 的启动器-->
com.baomidou</groupId>
mybatis-plus-boot-starter</artifactId>
3.5.2</version>
</dependency>
<!-- 代码生成器 start -->
com.baomidou</groupId>
mybatis-plus-generator</artifactId>
3.5.2</version>
</dependency>
<!-- 代码生成器需要的引擎模板 -->
org.apache.velocity</groupId>
velocity-engine-core</artifactId>
2.3</version>
</dependency>
3、创建生成方法
package com.example.demo.util;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.BeetlTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @ClassName MybatisPlusGenerator
* @Author zjh
*/
public class MybatisPlusGenerator {
private static final String projectPath = System.getProperty("user.dir");
public static void main(String[] args) {
FastAutoGenerator.create(
new DataSourceConfig.Builder("url", "账号", "密码"))
// 全局配置
.globalConfig((scanner, builder) -> builder
// 交互式作用名称
.author(scanner.apply("请输入作者名称?"))
// .author("zjh")
//覆盖已生成文件
.fileOverride()
// 开启swagger模式
.enableSwagger()
// 输出位置
.outputDir(projectPath + "/src/main/java"))
// 包配置
.packageConfig((scanner, builder) -> builder.parent(scanner.apply("请输入包名?"))
// .parent("com.example.demo") //父包名
// .moduleName("") //父包模块名 默认为空
.entity("model") //实体类包名
.service("Service") //Service层包名
.serviceImpl("Service.Impl") //Service层实现类包名
.mapper("Mapper") //Mapper层(DAO层)包名
.xml("mapper") //xml文件包名
.controller("Controller")
//.other("other")
//设置自动生成文件的路径(此处自定义了xml文件的生成目录 上方.xml()方法将失效)
.pathInfo(Collections.singletonMap(OutputFile.xml,projectPath + "/src/main/resources/mapper"))
)
// 策略配置
.strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
.controllerBuilder().enableRestStyle().enableHyphenStyle()
.entityBuilder().enableLombok()
// 下划线转驼峰命名
.columnNaming(NamingStrategy.underline_to_camel)
// .addTableFills(
// new Column("update_time",FieldFill.INSERT_UPDATE))
// .addTableFills(
// new Column("create_time", FieldFill.INSERT))
.build())
/*
模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
.templateEngine(new BeetlTemplateEngine())
.templateEngine(new FreemarkerTemplateEngine())
*/
// .templateEngine(new BeetlTemplateEngine())
.templateConfig((scanner, builder) -> getTemplateConfig())
.execute();
}
public static TemplateConfig getTemplateConfig () {
TemplateConfig templateConfig = new TemplateConfig.Builder()
// .disable(TemplateType.ENTITY)
.entity("/templates/entity.java.vm")
.service("/templates/service.java.vm")
.serviceImpl("/templates/serviceImpl.java.vm")
.mapper("/templates/mapper.java.vm")
.xml("/templates/mapper.xml.vm")
.controller("/templates/controller.java.vm")
.build();
return templateConfig;
}
// 处理 all 情况
protected static List<String> getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
}
4、引入生成的模板 模板存放地址
详解:如有侵权,望告知删除