> 文章列表 > 【超好用】自定义的mybatis-plus代码生成器

【超好用】自定义的mybatis-plus代码生成器

【超好用】自定义的mybatis-plus代码生成器

BACKGROUND

  • 你是否也有这样的烦恼:

  • 每次写代码都需要创建很多包很多层很多类很多接口?

  • 耗时且费力姑且不谈,有时可能还大意了没有闪,搞出一堆bug

  • 这谁顶得住啊

都3202年了,让程序自力更生吧!!

【超好用】自定义的mybatis-plus代码生成器

教程 lesson

| 准备 prepare

  • 添加依赖

        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3.1</version></dependency><!-- https://mvnrepository.com/artifact/org.freemarker/freemarker --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.32</version></dependency>
  • 复制如下文件内容

  • (本人定制,功能已经可以满足日常开发~更多可查阅官方文档)

package com.benjamin.demo.utils;import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;import java.util.Arrays;
import java.util.Collections;
import java.util.List;public class MyBatisPlusAuto {public static void main(String[] args) {//如果在空项目下创建模块项目,需要制定模块的名称,否则设置为空
//===============================================================================================String moduleName = "";     //  单体项目
//        String moduleName = "Wish-Cloud-master/wish-modules/wish-contract";     //  多模块项目示例String projectPath = System.getProperty("user.dir");
//===============================================================================================String databaseName = "20230212_new_test";FastAutoGenerator.create(
//==============================================================================================="jdbc:mysql://127.0.0.1:3306/" + databaseName + "?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai","yourusername", "yourpassword")// 全局配置.globalConfig((scanner, builder) ->builder.outputDir(projectPath + "/" + moduleName + "/src/main/java").author(scanner.apply("请输入作者名称:")).fileOverride()
//                                        .enableSwagger()    //  开启 swagger 模式)// 包配置.packageConfig((scanner, builder) -> builder
//===============================================================================================.parent("com.wish")                         //  父包名.moduleName(scanner.apply("请输入包名:"))  //  父包模块名.pathInfo(Collections.singletonMap(OutputFile.xml,                     //曾经是mapperXmlprojectPath + "/" + moduleName+ "/src/main/resources/mappers/")))// 策略配置.strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,2个及以上请使用英文逗号分隔(ps:所有表,输入 all):")))
//===============================================================================================
//                        .addTablePrefix("t_")       //  过滤表前缀.controllerBuilder()        //  生成@RestController控制器.enableRestStyle().enableHyphenStyle()        //  开启Controller驼峰转连字符.entityBuilder().enableLombok()             //  实体是否为lombok模型.naming(NamingStrategy.underline_to_camel)          //  数据库表字段映射到实体类的命名策略.columnNaming(NamingStrategy.underline_to_camel)    //  数据库表字段映射到实体类字段的命名策略
//===============================================================================================
//                        .addTableFills(
//                                new Column("create_time", FieldFill.INSERT)
//                        ).build())//  模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
//                .templateEngine(new BeetlTemplateEngine()).templateEngine(new FreemarkerTemplateEngine()). execute();}// 处理 all 情况protected static List<String> getTables(String tables) {return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));}}
  • 文件中请重点关注出现 “//============================================...” 的地方,是你运行前可能需要修改的位置。

  • 至于如何修改以及各部分什么含义,注释已经非常清晰了,这里不再重复描述。

| 运行 run

【超好用】自定义的mybatis-plus代码生成器
  • 点击运行后控制台会有相应提示

【超好用】自定义的mybatis-plus代码生成器
  • 依次输入你想要的值并回车

【超好用】自定义的mybatis-plus代码生成器
  • 生成成功!!

【超好用】自定义的mybatis-plus代码生成器
  • mac和windows都会弹出文件夹的

【超好用】自定义的mybatis-plus代码生成器
  • 同样我们回到项目中check,通过上图可以看到

  • everything is ok

  • 是不是巴适得板?

  • 那么我们再随便check一个文件的内容

【超好用】自定义的mybatis-plus代码生成器
  • 该有的它都有,剩下就需要我们根据需求再添砖加瓦了~

END


Thanks!