| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- package com.supplychain;
- import com.baomidou.mybatisplus.core.mapper.BaseMapper;
- import com.baomidou.mybatisplus.generator.AutoGenerator;
- import com.baomidou.mybatisplus.generator.config.*;
- import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
- import com.baomidou.mybatisplus.generator.config.rules.DateType;
- import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
- import java.util.Collections;
- import java.util.List;
- /**
- * 代码生成工具类
- */
- public class CodeGenerator {
- /**
- * 数据库链接地址
- */
- private static final String URL = "jdbc:mysql://47.109.193.147:3306/basic_library?socketTimeout=60000&connectTimeout=30000&serverTimeZone=UTC&useUnicode=true&characterEncoding=UTF-8";
- // private static final String URL = "jdbc:mysql://47.109.64.210:3306/intelligence?socketTimeout=60000&connectTimeout=30000&serverTimeZone=UTC&useUnicode=true&characterEncoding=UTF-8";
- /**
- * 用户名
- */
- private static final String USERNAME = "dms_root";
- //private static final String USERNAME = "root";
- /**
- * 密码
- */
- private static final String PASSWORD = "CsYr&Test159";
- // private static final String PASSWORD = "yr159";
- /**
- * 作者
- */
- private static final String AUTHOR = "";
- /**
- * 表名的前缀,从表生成代码时会去掉前缀
- */
- private static final String TABLE_PREFIX = "yr";
- /**
- * 包 名
- */
- private static final String PACKAGE_NAME = "com.yr.warehouse.admin.";
- /**
- * 模块名
- */
- private static final String PACKAGE_BUSINESS = "driver";
- /**
- * 需要生成的表名,必填
- */
- private static final List<String> TABLES = List.of(
- "yr_driver_goods_loss_record",
- "yr_driver_equipment_loss_record",
- "yr_driver_on_route_detail_log",
- "yr_driver_goods_loss_interval_main",
- "yr_driver_goods_loss_interval_detail",
- "yr_equipment_loss_interval_detail",
- "yr_driver_on_route_account_record_main",
- "yr_driver_on_route_account_record_detail"
- );
- public static void main(String[] args) {
- if (TABLES.isEmpty()) {
- System.out.println("请输入需要生成的表名!");
- return;
- }
- String projectPath = System.getProperty("user.dir");
- //全局配置
- GlobalConfig config = new GlobalConfig.Builder()
- .author(AUTHOR) //作者
- .outputDir(projectPath + "/warehouse-admin-data/src/main/java/") //生成文件输出路径(写到java目录)
- //.enableSwagger() //开启swagger
- .commentDate("yyyy-MM-dd HH:mm:ss") //注释日期格式
- .dateType(DateType.TIME_PACK) //设置时间对应类型
- .disableOpenDir() //生成后不要打开目录
- .build();
- //包名配置
- PackageConfig packageConfig = new PackageConfig.Builder()
- .parent(PACKAGE_NAME + PACKAGE_BUSINESS) //父包名
- //.moduleName(moduleName) //模块名
- //.controller("controller") //controller包名
- //.service("service.sys") //service接口包名
- .service("service")
- .serviceImpl("service.impl") //service实现类包名
- .entity("data") //实体类包名
- .mapper("mapper") //mapper包名
- .xml("mapper") //mapper对应的xml包名
- .pathInfo(Collections.singletonMap(OutputFile.mapper.xml, projectPath + "/warehouse-admin-data/src/main/resources/mapper/" + PACKAGE_BUSINESS)) //mapper对应的xml路径
- .build();
- //策略配置
- StrategyConfig strategyConfig = new StrategyConfig.Builder()
- .addTablePrefix(TABLE_PREFIX) //需要抵消的表前缀
- .addInclude(TABLES) //设置生成需要映射的表名
- //.enableCapitalMode() //策略开启⼤写命名
- .serviceBuilder() //构建Service层
- .formatServiceFileName("%sService")
- .enableFileOverride() //覆盖文件(需谨慎使用)
- .formatServiceImplFileName("%sServiceImpl") //业务层接口实现类命名
- // .superServiceImplClass(BaseService.class) //service公共父类
- .entityBuilder() //构建实体类
- .enableFileOverride() //覆盖文件(需谨慎使用)
- .formatFileName("%s")
- // .superClass(BaseEntity.class) //entity公共父类
- .columnNaming(NamingStrategy.underline_to_camel) //字段名驼峰命名
- .naming(NamingStrategy.underline_to_camel) //表名驼峰命名
- .enableLombok() //添加lombock的getter、setter注解
- //.enableChainModel() //启动链式写法@Accessors(chain = true)
- //.enableColumnConstant() //启动属性转常量功能@FieldNameConstants
- //.logicDeleteColumnName("deleted") //逻辑删除字段,标记@TableLogic
- .enableTableFieldAnnotation() //启动字段注解
- //.addTableFills(tableFillList) //属性值填充策略
- //.controllerBuilder() //构建Controller类
- //.enableFileOverride() //覆盖文件(需谨慎使用)
- //.enableHyphenStyle() //映射路径使用连字符格式,而不是驼峰
- //.formatFileName("%sController") //Controller类命名
- // .superClass(BaseController.class) //Controller 类继承 BaseController
- //.enableRestStyle() //标记@RestController注解
- .mapperBuilder() //构建mapper接口类
- //.enableFileOverride() //覆盖文件(需谨慎使用)
- .enableBaseResultMap() //生成基本的resultMap
- .formatMapperFileName("%sMapper") //Mapper接口类明名
- .superClass(BaseMapper.class) //Mapper接口类集成 BaseMapper
- //.enableMapperAnnotation() //标记@Mapper注解
- .formatXmlFileName("%sMapper") //Mapper.xml命名
- .enableBaseColumnList() //生成基本的SQL片段
- .build();
- //数据源配置
- DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig.Builder(URL, USERNAME, PASSWORD);
- //数据库类型转换器
- dataSourceConfigBuilder.typeConvert(new MySqlTypeConvert() {
- /*@Override
- public IColumnType processTypeConvert(GlobalConfig globalConfig, String tableField) {
- if (tableField.toLowerCase().contains("date") || tableField.toLowerCase().contains("timestamp") || tableField.toLowerCase().contains("datetime")) {
- return DbColumnType.STRING;
- }
- return super.processTypeConvert(globalConfig, tableField);
- }*/
- });
- //创建代码生成器对象,加载配置
- AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfigBuilder.build());
- autoGenerator.global(config);
- autoGenerator.packageInfo(packageConfig);
- autoGenerator.strategy(strategyConfig);
- //执行
- autoGenerator.execute();
- System.out.println("======================================== 相关代码生成完毕 =====================================");
- }
- }
|