GeneUtils.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.sf.admin.util;
  2. import com.baomidou.mybatisplus.generator.FastAutoGenerator;
  3. import com.baomidou.mybatisplus.generator.config.OutputFile;
  4. import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  5. import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
  6. import java.sql.Types;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. import java.util.List;
  10. // 代码生成工具
  11. public class GeneUtils {
  12. public static void main(String[] args) {
  13. List<String> list = new ArrayList<>();
  14. // list.add("ums_admin"); // 用户表
  15. // list.add("ums_menu"); // 菜单表
  16. // list.add("ums_role"); // 角色表
  17. // list.add("ums_dept"); // 部门表
  18. // list.add("ums_admin_role_relation"); // 用户角色关联表
  19. // list.add("ums_role_menu_relation"); // 角色菜单关联表
  20. // list.add("cc_enterprise"); // 企业信息表
  21. // list.add("cc_archives"); // 档案表
  22. // list.add("ums_member"); // 成员表
  23. // list.add("cc_knowledge"); // 知识库表
  24. // list.add("cc_work_order"); // 工单表
  25. // list.add("cc_score"); // 评分表
  26. list.add("sts_echarts"); // 折线图模拟数据表
  27. // 快速生成器
  28. FastAutoGenerator.create("jdbc:mysql://localhost:3306/sfcc_bak?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai",
  29. "root", "root123456")
  30. // 全局配置
  31. .globalConfig(builder -> {
  32. builder.author("baomidou") // 设置作者
  33. // .enableSwagger() // 开启 swagger 模式
  34. .outputDir("admin-demo/src/main/java/"); // 指定输出目录 mac/linux系统
  35. // .outputDir("src\\main\\java\\"); // 指定输出目录 windows系统
  36. })
  37. // 数据源配置
  38. .dataSourceConfig(builder ->
  39. builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
  40. int typeCode = metaInfo.getJdbcType().TYPE_CODE;
  41. if (typeCode == Types.SMALLINT) {
  42. // 自定义类型转换 smallint - short - int
  43. return DbColumnType.INTEGER;
  44. }
  45. if (typeCode == Types.TINYINT) {
  46. // tinyint - byte - int
  47. return DbColumnType.INTEGER;
  48. }
  49. return typeRegistry.getColumnType(metaInfo);
  50. })
  51. )
  52. // 包配置
  53. .packageConfig(builder ->
  54. builder.parent("com.sf.admin") // 设置父包名
  55. .moduleName("") // 设置父包模块名
  56. .pathInfo(Collections.singletonMap(
  57. // 设置mapperXml生成路径
  58. OutputFile.xml, "admin-demo/src/main/resources/mapper"))
  59. .entity("entity") //设置实体类包名
  60. .mapper("mapper")
  61. .service("service")
  62. .controller("controller")
  63. )
  64. // 策略配置
  65. .strategyConfig(builder ->
  66. // 设置需要生成的表名
  67. builder.addInclude(list).entityBuilder().enableLombok()
  68. )
  69. // 使用Freemarker引擎模板,默认的是Velocity引擎模板
  70. .templateEngine(new FreemarkerTemplateEngine())
  71. .execute();
  72. }
  73. }