Generator.java 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.alvin;
  2. import com.baomidou.mybatisplus.annotation.FieldFill;
  3. import com.baomidou.mybatisplus.generator.FastAutoGenerator;
  4. import com.baomidou.mybatisplus.generator.config.OutputFile;
  5. import com.baomidou.mybatisplus.generator.config.rules.DateType;
  6. import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
  7. import com.baomidou.mybatisplus.generator.fill.Column;
  8. import java.util.Collections;
  9. public class Generator {
  10. public static void main(String[] args) {
  11. String db_url = "jdbc:mysql://localhost:3306/aj_report";
  12. String db_username = "root";
  13. String db_password = "root";
  14. String javaDir = "C:/code";
  15. String parentPackage = "com.alvin.db";
  16. String tableName = "access_role";
  17. String author = "tianyun";
  18. String tablePrefix = "t_";
  19. generatorToFile(db_url, db_username, db_password, author, javaDir, parentPackage, tableName, tablePrefix);
  20. }
  21. private static void generatorToFile(String db_url, String db_username, String db_password, String author,
  22. String javaDir, String parentPackage, String tableName, String tablePrefix) {
  23. FastAutoGenerator.create(db_url, db_username, db_password)
  24. //===全局配置
  25. .globalConfig(builder -> {
  26. builder.author(author) // 设置作者
  27. .dateType(DateType.ONLY_DATE) // 设置日期为 Date
  28. //.enableSwagger() // 开启 swagger 模式
  29. .fileOverride() // 覆盖已生成文件
  30. .outputDir(javaDir); // 指定输出目录
  31. })
  32. //===模块配置
  33. .packageConfig(builder -> {
  34. builder.parent(parentPackage) // 设置父包名
  35. .moduleName("") // 设置父包模块名
  36. .pathInfo(Collections.singletonMap(OutputFile.mapperXml, javaDir + "/../resources/mapper")); // 设置mapperXml生成路径
  37. })
  38. .strategyConfig(builder -> {
  39. //Controller
  40. builder.controllerBuilder().enableHyphenStyle() // 开启驼峰转连字符
  41. .enableRestStyle(); // 开启生成@RestController 控制器
  42. //mapper
  43. builder.mapperBuilder().enableMapperAnnotation().build();
  44. //实体类
  45. builder.entityBuilder()
  46. .enableLombok()
  47. .addTableFills(
  48. new Column("create_time", FieldFill.INSERT),
  49. new Column("update_time", FieldFill.INSERT_UPDATE)
  50. );
  51. builder.addInclude(tableName) // 设置需要生成的表名
  52. .addTablePrefix(tablePrefix)
  53. ;
  54. })
  55. .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
  56. .templateConfig(builder -> builder.controller("templates/controller1.java")) // 设置为空则不会生成该文件
  57. //.templateConfig(builder -> builder.service(""))
  58. //.templateConfig(builder -> builder.serviceImpl(""))
  59. .execute();
  60. }
  61. }