1.导入pom依赖

		<!--  代码生成器-->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-generator</artifactId>
			<version>3.5.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity</artifactId>
			<version>1.7</version>
		</dependency>

2.创建一个类使用main方法运行代码生成器代码(关键地方我写了注解 其他功能参考官方文档)

官方配置如下:https://baomidou/pages/779a6e/#%E4%BD%BF%E7%94%A8

package com.pzh.vue.utils;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;


import java.util.Collections;

/**
 * 代码生成器
 * @since 2022-03-21
 */
public class MP {
    public static void main(String[] args) {
        generate();
    }
    private  static  void generate(){
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/xia?serverTimezone=UTC", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("xzh") // 设置作者
                            /*.enableSwagger() */// 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir("E:\\springboot\\test\\vue\\src\\main\\java\\"); // 指定输出目录  和自己项目src一一对应
                })
                .packageConfig(builder -> {
                    builder.parent("com.pzh.vue") // 设置父包名
                            .moduleName(null) // 设置父包模块名  解决路径冲突
                            .serviceImpl("service.imp") //自定义包名imp 官方的是impi
                            .entity("pojo") //设置实体包为pojo
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "E:\\springboot\\test\\vue\\src\\main\\resources\\mappers")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.entityBuilder().enableLombok();//使用lombok
                    builder.controllerBuilder().enableHyphenStyle()
                            .enableRestStyle();//开启RestController
                    builder.addInclude("sys_role") // 设置需要生成的表名
                            .addTablePrefix("t_", "sys_"); // 设置过滤表前缀
                })
              //  .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}

3.如有需要可以改写官方模板VM  需要找到模板并且复制到 templates

4.更改vm内容(要点:更改所有活的目录)

  (1)包名 import ${package.Entity}.${entity};

                  解释: ${package.Entity} = com.pzh.pojo 指你的实体路径(官方默认entity)

                             ${entity} = user 指实体

                  import ${package.Service}.${table.serviceName};

   (2)注入service 

             @Autowired
             private ${table.serviceName} ${table.entityPath}Service;

                   解释:${table.entityPath}Service 代表自定义对象的拼接 (如 实体是User)

                              这里结果就是userService

 (3)代码写在最后一个#end上面

下面是我的代码 可以参考:

    

package ${package.Controller};


import org.springframework.web.bind.annotation.RequestMapping;
//这里是动态的包
import ${package.Entity}.${entity};
import ${package.Service}.${table.serviceName};
//*******************缺什么包加什么*************************//

#if(${restControllerStyle})
import org.springframework.web.bind.annotation.RestController;
#else
import org.springframework.stereotype.Controller;
#end
#if(${superControllerClassPackage})
import ${superControllerClassPackage};
#end

/**
 * <p>
 * $!{tablement} 前端控制器
 * </p>
 *
 * @author ${author}
 * @since ${date}
 */
#if(${restControllerStyle})
@RestController
#else
@Controller
#end
@RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end")
#if(${kotlin})
class ${table.controllerName}#if(${superControllerClass}) : ${superControllerClass}()#end

#else
#if(${superControllerClass})
public class ${table.controllerName} extends ${superControllerClass} {
#else
public class ${table.controllerName} {
#end
    //这里加你的控制层的代码
  @Autowired
      private ${table.serviceName} ${table.entityPath}Service;
     @GetMapping
     public Result findAll(){
        List<${entity}> list = ${table.entityPath}Service.list();
        Result result=new Result();
        result.setStatus(200);
        result.setData(list);
        return result;
        }

}

#end

5.运行代码生成器(注意更改你需要生成类的表名 和数据库表对应)

更多推荐

Mybatis-plus 代码生成器使用官方VM模板生成代码(极简)