生成类
package com.lbdj.user.service;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.lbdj.user.service.common.utils.EnhanceVelocityTemplateEngine;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class CodeGenerator {
public static void main(String[] args) {
// 数据库配置
DataSourceConfig.Builder config = new DataSourceConfig.Builder(
"jdbc:mysql://192.xxx.xxx.xx:3306/xxx?useUnicode=true&characterEncoding=utf8&useSSL=true&",
"root",
"xxxx"
)
.dbQuery(new MySqlQuery())
.typeConvert(new MySqlTypeConvertCustom())
.keyWordsHandler(new MySqlKeyWordsHandler());
// 数据源配置
FastAutoGenerator.create(config)
.globalConfig(builder -> {
// 设置作者
builder.author("作者")
//开启 swagger 模式 默认值:false
//.enableSwagger()
//禁止打开输出目录 默认值:true
.disableOpenDir()
//注释日期
.commentDate("yyyy-MM-dd")
//定义生成的实体类中日期类型 DateType.ONLY_DATE 默认值: DateType.TIME_PACK
.dateType(DateType.ONLY_DATE)
.outputDir(System.getProperty("user.dir")+"/src/main/java"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.lbdj.user.service") // 父包模块名
.controller("controller") //Controller 包名 默认值:controller
.entity("entity") //Entity 包名 默认值:entity
.service("service") //Service 包名 默认值:service
.serviceImpl("service.impl")
.mapper("mapper") //Mapper 包名 默认值:mapper
.other("dto") // 设置dto包名
//.moduleName("xxx") // 设置父包模块名 默认值:无
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"/src/main/resources/mybatis/mapper")); // 设置mapperXml生成路径
//默认存放在mapper的xml下
})
.injectionConfig(consumer -> {
Map<String, String> customFile = new HashMap<>();
// DTO、VO
customFile.put("DTO.java", "/templates/entityDTO.java.vm");
//customFile.put("VO.java", "/templates/entityVO.java.ftl");
consumer.customFile(customFile);
})
.strategyConfig(builder -> {
// 设置需要生成的表名
//如果无法输入请修改idea配置:help -> Edit Custom VM Options -> 最后追加:-Deditable.java.test.console=true -> 重启idea
Scanner scanner = new Scanner(System.in);
System.out.println("请输入需要生成的表名,多个用逗号隔开:");
String tables = scanner.next();
scanner.close();
builder.addInclude(tables) // 设置需要生成的表名 可边长参数“user”, “user1”
//.addTablePrefix("tb_", "gms_") // 设置过滤表前缀
.serviceBuilder()//service策略配置
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.entityBuilder()// 实体类策略配置
//.idType(IdType.ASSIGN_ID)//主键策略 雪花算法自动生成的id
//.addTableFills(new Column("create_time", FieldFill.INSER