AutoMP.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.mokamrp;
  2. import com.baomidou.mybatisplus.enums.IdType;
  3. import com.baomidou.mybatisplus.generator.AutoGenerator;
  4. import com.baomidou.mybatisplus.generator.InjectionConfig;
  5. import com.baomidou.mybatisplus.generator.config.*;
  6. import com.baomidou.mybatisplus.generator.config.po.TableInfo;
  7. import com.baomidou.mybatisplus.generator.config.rules.DbType;
  8. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.junit.Test;
  11. import java.util.ArrayList;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. public class AutoMP {
  16. /**
  17. * 代码生成 示例代码
  18. */
  19. @Test
  20. public void testGenerator() {
  21. //1. 全局配置
  22. String outPutDir = "D://project/moka-private/src/main/java";
  23. GlobalConfig config = new GlobalConfig();
  24. config.setActiveRecord(true) // 是否支持AR模式
  25. .setAuthor("leon") // 作者
  26. .setOutputDir(outPutDir) // 生成路径
  27. .setFileOverride(true) // 文件覆盖
  28. .setIdType(IdType.AUTO) // 主键策略
  29. .setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I
  30. // IEmployeeService
  31. .setBaseResultMap(true) //生成sql映射文件
  32. .setBaseColumnList(true);//生成sql片段
  33. //2. 数据源配置
  34. DataSourceConfig dsConfig = new DataSourceConfig();
  35. dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
  36. .setDriverName("com.mysql.cj.jdbc.Driver")
  37. .setUrl("jdbc:mysql://rm-uf618jc32u2o80g558o.mysql.rds.aliyuncs.com:3306/mochat")
  38. .setUsername("typer")
  39. .setPassword("jch9sh_shl");
  40. //3. 策略配置
  41. StrategyConfig stConfig = new StrategyConfig();
  42. stConfig.setCapitalMode(true) //全局大写命名
  43. .setRestControllerStyle(true) //.RestController
  44. .setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线
  45. .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
  46. .setTablePrefix("private_") //表名前缀
  47. .setInclude("private_group_corp"); // 生成的表
  48. //4. 包名策略配置
  49. PackageConfig pkConfig = new PackageConfig();
  50. pkConfig.setParent("com.mokamrp.privates")
  51. .setMapper("mapper")
  52. .setService("service")
  53. .setController("controller")
  54. .setEntity("mapper.pojo")
  55. .setXml("mapper");
  56. //5. 注入自定义配置
  57. InjectionConfig cfg = new InjectionConfig() {
  58. @Override
  59. public void initMap() {
  60. Map<String, Object> map = new HashMap<String, Object>();
  61. this.setMap(map);
  62. }
  63. };
  64. //6. 整合配置
  65. AutoGenerator ag = new AutoGenerator();
  66. ag.setGlobalConfig(config)
  67. .setDataSource(dsConfig)
  68. .setStrategy(stConfig)
  69. .setPackageInfo(pkConfig);
  70. //. @leon 自定义模板
  71. TemplateConfig tc = new TemplateConfig();
  72. tc.setService("/template/service.java.vm");
  73. tc.setServiceImpl("/template/serviceImpl.java.vm");
  74. tc.setController("/template/controller.java.vm");
  75. ag.setTemplate(tc);
  76. //7. 执行
  77. ag.execute();
  78. }
  79. }