Mybatis-Plus-Generator代码生成器Generator

引入依赖

        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <!--generator-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.3.1</version>
        </dependency>

Generator类

创建Generator类,一般放在项目根目录下,Spring项目中放置与启动类平级

package com.greenjiao.coc;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.ibatis.annotations.Mapper;

public class Generator {
    private static final String url="jdbc:mysql://localhost:3306/coc?serverTimezone=Asia/Shanghai";
    private static final String username="root";
    private static final String password="yourpassword";

    public static void main(String[] args) {
        FastAutoGenerator.create(url,username,password)
                /*
                全局配置
                 */
                .globalConfig(builder -> {
                    builder.author("yan")
                            // 输出目录
                            .outputDir("E:\\JavaProject")
                            // 开启swagger模式
                            .enableSwagger()
                            // 时间策略
                            .dateType(DateType.TIME_PACK)
                            // 注释日期格式
                            .commentDate("yyyy-MM-dd");
                })
                /*
                包配置
                 */
                .packageConfig(builder -> {
                    builder.parent("com.greenjiao") // 父包名
                            .moduleName("coc")      // 模块名
                            .entity("bean")         // 实体类包名
                            .service("service")     // service包名
                            .serviceImpl("service.impl")
                            .mapper("mapper")
                            .xml("mapper.xml")
                            .controller("controller");
                })
                /*
                策略配置
                 */
                .strategyConfig(builder -> {
                    builder.enableSkipView()
                            .disableSqlFilter()
                            // 添加匹配表名,等于这个名称才会自动生成代码,如果需要直接生成一个库中所有表可以不要匹配规则
                            // 当然还有其他匹配规则,请前往官网查看
                            .addInclude("gender");
                })
                /*
                实体类策略配置
                 */
                .strategyConfig(builder -> {
                    builder.entityBuilder()
                            .enableFileOverride()
                            .disableSerialVersionUID()              //禁用生成 serialVersionUID
                            .enableChainModel()                     //开启链式模型
                            .enableLombok()                         //开启 lombok
                            .enableTableFieldAnnotation()           //开启生成字段注解
                            //数据表映射到实体命名策略,下划线转驼峰命名
                            .naming(NamingStrategy.underline_to_camel)
                            //字段映射命名策略
                            .columnNaming(NamingStrategy.underline_to_camel)
                            //主键策略,为空则雪花算法
                            .idType(IdType.ASSIGN_ID);
                })
                /*
                Controller策略配置
                 */
                .strategyConfig(builder -> {
                    builder.controllerBuilder()
                            .enableFileOverride()
                            .enableHyphenStyle()
                            .enableRestStyle()
                            .formatFileName("%sController");
                })
                /*
                Service策略配置
                 */
                .strategyConfig(builder -> {
                    builder.serviceBuilder()
                            .enableFileOverride()
                            .formatServiceFileName("%sService")
                            .formatServiceImplFileName("%sServiceImp");
                })
                /*
                Mapper策略配置
                 */
                .strategyConfig(builder -> {
                    builder.mapperBuilder()
                            .enableFileOverride()
                            // enableMapperAnnotation 将弃用,改为mapperAnnotation
                            .mapperAnnotation(Mapper.class)
                            .enableBaseResultMap()
                            .enableBaseColumnList()
                            .formatMapperFileName("%sMapper")
                            .formatXmlFileName("%sMapper");
                })
                .execute();
    }
}

添加完Generator类后运行他即可自动生成代码,本文主要是记录,我是可以正常使用的,如果你有哪里用不了请说明原因我也可以帮忙看看

版本尽量使用最新的,但是最新的版本又跟旧的不一样,挺多参考的都有问题,所以我搞了半天

官方文档

附上官方地址,官方的github项目中也有样例,不过讲实话我觉得emm...还是要试挺久的,毕竟没人讲解。

可以参考我写的这个Generator再琢磨一下,欢迎提问,教学相长

猜你喜欢

转载自blog.csdn.net/m0_54250110/article/details/130535173