AutoGenerate.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.fdkankan.task.generate;
  2. import com.mybatisflex.codegen.Generator;
  3. import com.mybatisflex.codegen.config.ColumnConfig;
  4. import com.mybatisflex.codegen.config.GlobalConfig;
  5. import com.mybatisflex.codegen.dialect.JdbcTypeMapping;
  6. import com.mybatisflex.core.FlexGlobalConfig;
  7. import com.zaxxer.hikari.HikariDataSource;
  8. import java.sql.Timestamp;
  9. import java.time.LocalDateTime;
  10. import java.util.*;
  11. public class AutoGenerate {
  12. public static void main(String[] args) {
  13. String path =System.getProperty("user.dir");
  14. //配置数据源
  15. HikariDataSource dataSource = new HikariDataSource();
  16. dataSource.setJdbcUrl("jdbc:mysql://120.24.144.164:3306/4dkankan_v4_sale?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true");
  17. dataSource.setUsername("root");
  18. dataSource.setPassword("4Dage@4Dage#@168");
  19. //创建配置内容,两种风格都可以。
  20. GlobalConfig globalConfig = createGlobalConfigUseStyle1("com.fdkankan.task",new String[]{
  21. "t_repair","t_repair_log"
  22. });
  23. //GlobalConfig globalConfig = createGlobalConfigUseStyle2();
  24. //通过 datasource 和 globalConfig 创建代码生成器
  25. Generator generator = new Generator(dataSource, globalConfig);
  26. //生成代码
  27. generator.generate();
  28. }
  29. public static GlobalConfig createGlobalConfigUseStyle1(String packageName,String[] table) {
  30. FlexGlobalConfig globalConfig2 = FlexGlobalConfig.getDefaultConfig();
  31. //设置数据库正常时的值
  32. globalConfig2.setNormalValueOfLogicDelete("I");
  33. //设置数据已被删除时的值
  34. globalConfig2.setDeletedValueOfLogicDelete("A");
  35. //创建配置内容
  36. GlobalConfig globalConfig = new GlobalConfig();
  37. //设置根包
  38. globalConfig.setBasePackage(packageName);
  39. //设置表前缀和只生成哪些表
  40. globalConfig.setTablePrefix("t_");
  41. globalConfig.setGenerateTable(table);
  42. //设置生成 entity 并启用 Lombok
  43. globalConfig.setEntityGenerateEnable(true);
  44. globalConfig.setEntityWithLombok(true);
  45. globalConfig.setEntityOverwriteEnable(true);
  46. globalConfig.setLogicDeleteColumn("rec_status");
  47. //设置生成 mapper
  48. globalConfig.setMapperGenerateEnable(true);
  49. globalConfig.setServiceGenerateEnable(true);
  50. globalConfig.setServiceImplGenerateEnable(true);
  51. globalConfig.setControllerGenerateEnable(true);
  52. JdbcTypeMapping.registerMapping(LocalDateTime.class, Date.class);
  53. JdbcTypeMapping.registerMapping(Timestamp.class, Date.class);
  54. return globalConfig;
  55. }
  56. public static GlobalConfig createGlobalConfigUseStyle2() {
  57. //创建配置内容
  58. GlobalConfig globalConfig = new GlobalConfig();
  59. //设置根包
  60. globalConfig.getPackageConfig()
  61. .setBasePackage("com.test");
  62. //设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
  63. globalConfig.getStrategyConfig()
  64. .setTablePrefix("tb_")
  65. .setGenerateTable("tb_account", "tb_account_session");
  66. //设置生成 entity 并启用 Lombok
  67. globalConfig.enableEntity()
  68. .setWithLombok(true);
  69. //设置生成 mapper
  70. globalConfig.enableMapper();
  71. //可以单独配置某个列
  72. ColumnConfig columnConfig = new ColumnConfig();
  73. columnConfig.setColumnName("tenant_id");
  74. columnConfig.setLarge(true);
  75. columnConfig.setVersion(true);
  76. globalConfig.getStrategyConfig()
  77. .setColumnConfig("tb_account", columnConfig);
  78. return globalConfig;
  79. }
  80. }