package com.thtf.zwdsj.gongjia.config;
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 ggl
* @Date 2023/5/4
* @Version 1.0
*/
public class MybatisPlusGenerator {
public static void main(String[] args) {
//这里按着给的注解修改参数即可
//手动配置数据源
String url = "jdbc:mysql://10.10.60.119:3309/tjy-stat?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&useCursorFetch=true&allowMultiQueries=true&rewriteBatchedStatements=true"; //注意修改数据库名
String name = "thtf";
String password = "THTF_tjy_thtf";
//数据库表的设置
List<String> listTable = Arrays.asList("t_price_ppi_group_config"); //设置需要自动代码生成的表名
//基本信息
String author = "ggl"; //作者
String parent = "com.thtf.zwdsj.gongjia"; //父包名
String module = "thtf.zwdsj.gongjia"; //模块包名
//已封装好,无需更改。可按照需求进行注释
//1、配置数据源
FastAutoGenerator.create(url, name, password)
//2、全局配置
.globalConfig(builder -> {
builder.author(author) // 设置作者名
.outputDir(System.getProperty("user.dir") + "/src/main/java") //设置输出路径:项目的 java 目录下【System.getProperty("user.dir")意思是获取到项目所在的绝对路径】
.commentDate("yyyy-MM-dd hh:mm:ss") //注释日期
.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;
.fileOverride() //覆盖之前的文件
.enableSwagger(); //开启 swagger 模式
//.outputDir(""); //指定输出目录,一般指定到java目录
})
//3、包配置
.packageConfig(builder -> {
builder.parent(parent) // 设置父包名
//.moduleName(module) //设置模块包名
.entity("entity") //pojo 实体类包名
.service("service") //Service 包名
.serviceImpl("service.impl") // ***ServiceImpl 包名
.mapper("mapper") //Mapper 包名
.xml("mapper.xml") //Mapper XML 包名
.controller("controller") //Controller 包名
.other("config") //自定义包名(一般不在这里生成,而是后面编写的时候自己建包)
.pathInfo(Collections.singletonMap(OutputFile.mapper.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); //配置 mapper.xml 路径信息:项目的 resources 目录下
})
//4、策略配置
.strategyConfig(builder -> {
builder.enableCapitalMode() //开启大写命名
.enableSkipView() //创建实体类的时候跳过视图
.addInclude(listTable) // 设置需要生成的数据表名
//4.1、实体类策略配置
.entityBuilder().enableChainModel() //开启链式模型
//.disableSerialVersionUID() //默认是开启实体类序列化,可以手动disable使它不序列化。由于项目中需要使用序列化就按照默认开启了
.enableTableFieldAnnotation() // 开启生成实体时生成字段注解
.enableLombok() //开启 Lombok
//4.2、Controller策略配置
.controllerBuilder().enableHyphenStyle() //开启驼峰连转字符
.formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController
.enableRestStyle() //开启生成 @RestController 控制器
//4.3、service 策略配置
.serviceBuilder().formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService
.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl
//4.4、Mapper策略配置
.mapperBuilder().superClass(BaseMapper.class) //设置父类
.enableBaseResultMap() //启用 BaseResultMap 生成
.enableBaseColumnList() //启用 BaseColumnList
.formatMapperFileName("%sMapper") //格式化 mapper 文件名称
.enableMapperAnnotation() //开启 @Mapper 注解
.formatXmlFileName("%sXml") //格式化Xml文件名称
.formatMapperFileName("%sMapper"); //格式化Mapper文件名称
})
//6、执行
.execute();
}
}