package com.fdkankan.task.generate; import com.mybatisflex.codegen.Generator; import com.mybatisflex.codegen.config.ColumnConfig; import com.mybatisflex.codegen.config.GlobalConfig; import com.mybatisflex.codegen.dialect.JdbcTypeMapping; import com.mybatisflex.core.FlexGlobalConfig; import com.zaxxer.hikari.HikariDataSource; import java.sql.Timestamp; import java.time.LocalDateTime; import java.util.*; public class AutoGenerate { public static void main(String[] args) { String path =System.getProperty("user.dir"); //配置数据源 HikariDataSource dataSource = new HikariDataSource(); dataSource.setJdbcUrl("jdbc:mysql://120.24.144.164:3306/4dkankan_v4_sale?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true"); dataSource.setUsername("root"); dataSource.setPassword("4Dage@4Dage#@168"); //创建配置内容,两种风格都可以。 GlobalConfig globalConfig = createGlobalConfigUseStyle1("com.fdkankan.task",new String[]{ "t_repair","t_repair_log" }); //GlobalConfig globalConfig = createGlobalConfigUseStyle2(); //通过 datasource 和 globalConfig 创建代码生成器 Generator generator = new Generator(dataSource, globalConfig); //生成代码 generator.generate(); } public static GlobalConfig createGlobalConfigUseStyle1(String packageName,String[] table) { FlexGlobalConfig globalConfig2 = FlexGlobalConfig.getDefaultConfig(); //设置数据库正常时的值 globalConfig2.setNormalValueOfLogicDelete("I"); //设置数据已被删除时的值 globalConfig2.setDeletedValueOfLogicDelete("A"); //创建配置内容 GlobalConfig globalConfig = new GlobalConfig(); //设置根包 globalConfig.setBasePackage(packageName); //设置表前缀和只生成哪些表 globalConfig.setTablePrefix("t_"); globalConfig.setGenerateTable(table); //设置生成 entity 并启用 Lombok globalConfig.setEntityGenerateEnable(true); globalConfig.setEntityWithLombok(true); globalConfig.setEntityOverwriteEnable(true); globalConfig.setLogicDeleteColumn("rec_status"); //设置生成 mapper globalConfig.setMapperGenerateEnable(true); globalConfig.setServiceGenerateEnable(true); globalConfig.setServiceImplGenerateEnable(true); globalConfig.setControllerGenerateEnable(true); JdbcTypeMapping.registerMapping(LocalDateTime.class, Date.class); JdbcTypeMapping.registerMapping(Timestamp.class, Date.class); return globalConfig; } public static GlobalConfig createGlobalConfigUseStyle2() { //创建配置内容 GlobalConfig globalConfig = new GlobalConfig(); //设置根包 globalConfig.getPackageConfig() .setBasePackage("com.test"); //设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表 globalConfig.getStrategyConfig() .setTablePrefix("tb_") .setGenerateTable("tb_account", "tb_account_session"); //设置生成 entity 并启用 Lombok globalConfig.enableEntity() .setWithLombok(true); //设置生成 mapper globalConfig.enableMapper(); //可以单独配置某个列 ColumnConfig columnConfig = new ColumnConfig(); columnConfig.setColumnName("tenant_id"); columnConfig.setLarge(true); columnConfig.setVersion(true); globalConfig.getStrategyConfig() .setColumnConfig("tb_account", columnConfig); return globalConfig; } }