MybatisPlus_代码生成器(新)

适用版本:mybatis-plus-generator 3.5.1 及其以上版本,对历史版本不兼容

旧版代码生成器参照官方文档

MyBatis-PlusMyBatis-Plus 官方文档https://baomidou.com/代码段

package cn.alan.Generator;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;

import java.util.Collections;

public class GeneratorApplicationTests {
    private static final String projectPath = System.getProperty("user.dir");

    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatisplus?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true", "root", "123456789")
                .globalConfig(builder -> {
                    builder
                            .fileOverride()                                 //覆盖已生成文件
                            .disableOpenDir()                               //禁止(在文件夹中)打开输出目录
                            .enableSwagger()                                //开启swagger模式(实体类中的说明)
                            .outputDir(projectPath + "/src/main/java")      //输出目录
                            .author("alan")                                 //作者
                            .dateType(DateType.TIME_PACK);                  //日期类型
                })
                .packageConfig(builder -> {
                    builder
                            .parent("cn.alan.Generator")    //父包名
                            .moduleName("")                 //父包模块名 默认为空
                            .entity("POJO")                 //实体类包名
                            .service("Service")             //Service层包名
                            .serviceImpl("Service.Impl")    //Service层实现类包名
                            .mapper("Mapper")               //Mapper层(DAO层)包名
                            .xml("Mapper.XML")              //xml文件包名
                            .controller("Controller")       //Controller层包名
                            .other("other")
                            //设置自动生成文件的路径(此处自定义了xml文件的生成目录 上方.xml()方法将失效)
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,projectPath + "/src/main/resources/mappers"))
                            .build();
                })
                .strategyConfig(builder -> {
                    builder
                            .addInclude("user")         //映射的表名

                            //禁用SQL过滤
                            //关闭之后likeTable与notLikeTable将失效 include和exclude将使用内存过滤
                            //.disableSqlFilter()

                            .entityBuilder()                                                                //实体类设置
                            .enableLombok()                                                                 //开启lombok
                            .enableChainModel()                                                             //开启链式编程
                            .idType(IdType.AUTO)                                                            //主键id生成策略
                            .addTableFills(new Column("create_time", FieldFill.INSERT))         //自动填充(依据数据库字段名)
                            .addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE))  //自动填充(依据数据库字段名)
                            .logicDeleteColumnName("deleted")                                               //逻辑删除(依据数据库字段名)
                            .versionColumnName("version")                                                   //乐观锁(依据数据库字段名)

                            .controllerBuilder()                            //Controller层设置
                            .enableHyphenStyle()                            //开启(url)驼峰转下划线
                            .enableRestStyle()                              //开启生成@RestController注解

                            .serviceBuilder()                               //Service层设置
                            .formatServiceFileName("%sService")             //Service接口命名规则(除去"I"前缀)

                            .mapperBuilder()                                //Mapper层(DAO层)设置
                            .enableMapperAnnotation();                      //开启生成@Mapper注解
                })
                .templateEngine(new FreemarkerTemplateEngine())     //使用freemarker模板引擎

                .execute();                                         //执行
    }
}

你可能感兴趣的:(MybatisPlus,java,数据库,前端)