1、添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
2、启动类
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.yt.xcloud.sport.common.web.bean.YTBaseEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.Scanner;
public class CodeGenerator {
public static void main(String []args) {
//创建一个代码生成器
FastAutoGenerator.create("jdbc:mysql://rm-bp122zg18qje78e68wo.mysql.rds.aliyuncs.com:3306/pigxx_sport_business?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false", "ytpigx", "YtPigx_2022")
//全局配置(GlobalConfig)
.globalConfig(builder -> {
builder.author("xdd") // 设置作者,可以写自己名字
//.enableSwagger() // 开启 swagger 模式,这个是接口文档生成器,如果开启的话,就还需要导入swagger依赖
.fileOverride() // 覆盖已生成文件
.disableOpenDir()
.dateType(DateType.TIME_PACK) //时间策略
.commentDate("yyyy-MM-dd") //注释日期
.outputDir("D:\\project\\pigx\\xyh-server\\src\\main\\java"); // 指定输出目录,一般指定到java目录
})
//包配置(PackageConfig)
.packageConfig(builder -> {
System.out.println("----------------请输入文件夹名称----------------");
Scanner sc=new Scanner(System.in);
String s = sc.nextLine();
builder.parent("com.yt.xcloud.sport.xyh") // 设置父包名
.moduleName(s); // 设置父包模块名,这里一般不设置
})
//策略配置(StrategyConfig)
.strategyConfig(builder -> {
System.out.println("----------------请输入表名名称(多个表用','分割)----------------");
Scanner sc=new Scanner(System.in);
String s = sc.nextLine();
builder.addInclude(s) // 设置需要生成的表名
.addTablePrefix("tbl_yt_sport_xyh_"); // 设置过滤表前缀
builder.entityBuilder()
.formatFileName("%sPO")
.superClass(YTBaseEntity.class)
.enableLombok();
builder.serviceBuilder()
.superServiceClass(IService.class)
.formatServiceFileName("%sService") //设置service的命名策略,没有这个配置的话,生成的service和serviceImpl类前面会有一个I,比如IUserService和IUserServiceImpl
.superServiceImplClass(ServiceImpl.class)
.formatServiceImplFileName("%sServiceImpl"); //设置serviceImpl的命名策略
builder.controllerBuilder()
.enableRestStyle(); // 开启生成@RestController 控制器,不配置这个默认是Controller注解,RestController是返回Json字符串的,多用于前后端分离项目。
builder.mapperBuilder()
.superClass(BaseMapper.class)
.mapperAnnotation(Mapper.class);
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板VelocityTemplateEngine
.execute(); //执行以上配置
}
}