• mybatis-plus 3.5.2 自动生成代码


    1. @Test
    2. void generatorCode() {
    3. FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/admin", "root", "root")
    4. .globalConfig(builder -> {
    5. builder.author("liangdada") // 设置作者
    6. .enableSwagger() // 开启 swagger 模式
    7. // .fileOverride()
    8. .disableOpenDir() //禁止打开输出目录
    9. .outputDir("D:\\my\\sharding-jdbc\\src\\main\\java"); // 指定输出目录
    10. })
    11. .packageConfig(builder -> {
    12. builder.parent("com.liang") // 设置父包名
    13. .moduleName("sharding") // 设置父包模块名
    14. .pathInfo(
    15. new HashMap(){{
    16. put(OutputFile.xml,"D:\\my\\sharding-jdbc\\src\\main\\resources\\mapper");
    17. // put(OutputFile.parent,"D:\\my\\sharding-jdbc\\src\\main\\java\\client");
    18. }}
    19. ); // 设置mapperXml生成路径
    20. })
    21. .strategyConfig(builder -> {
    22. builder.addInclude("user")// 设置需要生成的表名 // .addTablePrefix("t_", "c_"); // 设置过滤表前缀
    23. .entityBuilder() //entity配置
    24. // .enableFileOverride() //覆盖文件
    25. .enableLombok() // 开启lombok
    26. // .serviceBuilder()
    27. // .enableFileOverride()
    28. .controllerBuilder()
    29. .enableRestStyle() // 开启生成@RestController 控制器
    30. // .enableFileOverride()
    31. .mapperBuilder()
    32. .enableBaseResultMap(); // 启用 BaseResultMap 生成
    33. // .enableFileOverride(); // 是否覆盖
    34. })
    35. // 模板配置
    36. .templateConfig(builder -> {
    37. builder.controller("/templates/controller.java")
    38. .xml("/templates/mapper.xml");
    39. })
    40. .templateEngine(new FreemarkerTemplateEngine(){
    41. // 重写自定义文件输出
    42. @Override
    43. protected void outputCustomFile(List customFiles, TableInfo tableInfo, Map objectMap) {
    44. String entityName = tableInfo.getEntityName();
    45. String parentPath = this.getPathInfo(OutputFile.parent);
    46. customFiles.forEach((file) -> {
    47. String filePath = StringUtils.isNotBlank(file.getFilePath()) ? file.getFilePath() : parentPath;
    48. String fileName = file.getFileName();
    49. if(fileName.contains("Req")){
    50. filePath = filePath + "\\pojo\\req";
    51. }else if (fileName.contains("Dto")){
    52. filePath = filePath + "\\pojo\\dto";
    53. }else if (fileName.contains("Resp")){
    54. filePath = filePath + "\\pojo\\resp";
    55. }else if (fileName.contains("Pojo")){
    56. filePath = filePath + "\\pojo\\mapper";
    57. }else if (fileName.contains("Query")){
    58. filePath = filePath + "\\pojo\\query";
    59. }
    60. //Query
    61. if (StringUtils.isNotBlank(file.getPackageName())) {
    62. filePath = filePath + File.separator + file.getPackageName();
    63. }
    64. fileName = filePath + File.separator + entityName + file.getFileName();
    65. log.info("fileName===>{}",fileName);
    66. this.outputFile(new File(fileName), objectMap, file.getTemplatePath(), file.isFileOverride());
    67. });
    68. }
    69. }) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
    70. .injectionConfig(builder -> {
    71. builder.beforeOutputFile((tableInfo,objectMap)->{
    72. // 预处理信息
    73. System.out.println(tableInfo.getEntityName());
    74. System.out.println(objectMap);
    75. })
    76. .customMap(// 设置模板参数
    77. Collections.singletonMap("Dto","Dto")
    78. )
    79. .customFile(new HashMap(){{
    80. // key 生成的文件名,val 模板路径
    81. put("Dto.java","/templates/entityDTO.java.ftl");
    82. put("Req.java","/templates/entityReq.java.ftl");
    83. put("Resp.java","/templates/entityResp.java.ftl");
    84. put("PojoMapper.java","/templates/pojoMapper.java.ftl");
    85. put("Query.java","/templates/entityQuery.java.ftl");
    86. }})
    87. .build();
    88. })
    89. .execute();
    90. }

  • 相关阅读:
    SV--类型转换
    中国标志性的图片简笔画,互联网简笔画图片大全
    ubuntu18.04 报错:fatal error: execution
    多媒体数据处理实验3:图像特征提取与检索
    Linux权限认识
    Flink中Table API和SQL(一)
    Mysq查询性能调优
    SpringBoot集成Jwt
    JavaScript运算符、条件语句、循环、类型转换
    Java NIO与IO的区别和比较
  • 原文地址:https://blog.csdn.net/weixin_44990255/article/details/126070336