其他分享
首页 > 其他分享> > Mybatis-plus代码生成器3.5.1

Mybatis-plus代码生成器3.5.1

作者:互联网

导入依赖

    <!--spring-boot-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--SpringBootTest-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!--swagger-->
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>1.6.3</version>
    </dependency>
    <!--lombok-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <!--mysql 驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
    <!--mybatis-plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3.4</version>
    </dependency>
    <!--mybatis-plus-generator 生成器-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.5.1</version>
    </dependency>
    <!--velocity-->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.3</version>
    </dependency>
    <!--freemarker-->
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.31</version>
    </dependency>
    <!--beetl 模板-->
    <dependency>
        <groupId>com.ibeetl</groupId>
        <artifactId>beetl</artifactId>
        <version>3.8.1.RELEASE</version>
    </dependency>

代码

package com.example.code;


import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * ClassName: FastAutoGeneratorTest <br/>
 * Description: <br/>
 * date: 2022/6/6 16:16 <br/>
 *
 * @author 萝卜 <br/>
 */
public class FastAutoGeneratorTest {
    public static void main(String[] args) {
        //1、配置数据源
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/seckill", "root", "123456")
             //2、全局配置
            .globalConfig(builder -> {
                builder.author("Radish") // 设置作者名
                    .outputDir(System.getProperty("user.dir") + "/src/main/java")   //设置输出路径:项目的 java 目录下
                    .commentDate("yyyy-MM-dd hh:mm:ss")   //注释日期
                    .dateType(DateType.ONLY_DATE)   //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;
                    .fileOverride()   //覆盖之前的文件
                    .enableSwagger()   //开启 swagger 模式
                    .disableOpenDir();   //禁止打开输出目录,默认打开
            })
            //3、包配置
            .packageConfig(builder -> {
                builder.parent("com") // 设置父包名
                    .moduleName("radish")   //设置模块包名
                    .entity("entity")   //pojo 实体类包名
                    .service("service") //Service 包名
                    .serviceImpl("serviceImpl") // ***ServiceImpl 包名
                    .mapper("mapper")   //Mapper 包名
                    .xml("mapper")  //Mapper XML 包名
                    .controller("controller") //Controller 包名
                    .other("utils") //自定义文件包名
                    .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/src/main/resources/mapper"));    //配置 mapper.xml 路径信息:项目的 resources 目录下
            })
            //4、策略配置
            .strategyConfig(builder -> {
                builder.addInclude("t_user", "t_goods","t_order","t_seckill_goods","t_seckill_order") // 设置需要生成的数据表名
                    .addTablePrefix("t_", "c_") // 设置过滤表前缀

                    //4.1、Mapper策略配置
                    .mapperBuilder()
                    .superClass(BaseMapper.class)   //设置父类
                    .formatMapperFileName("%sMapper")   //格式化 mapper 文件名称
                    .enableMapperAnnotation()       //开启 @Mapper 注解
                    .formatXmlFileName("%sXml")//格式化 Xml 文件名称

                //4.2、service 策略配置
        	.serviceBuilder()
                    .formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService
                    .formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl

                    //4.3、实体类策略配置
                    .entityBuilder()
                    .enableLombok() //开启 Lombok
                    .disableSerialVersionUID()  //不实现 Serializable 接口,不生产 SerialVersionUID
                    .logicDeleteColumnName("deleted")   //逻辑删除字段名
                    .naming(NamingStrategy.underline_to_camel)  //数据库表映射到实体的命名策略:下划线转驼峰命
                    .columnNaming(NamingStrategy.underline_to_camel)    //数据库表字段映射到实体的命名策略:下划线转驼峰命
                    .addTableFills(
                            new Column("create_time", FieldFill.INSERT),
                            new Column("modify_time", FieldFill.INSERT_UPDATE)
                    )   //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间
                    .enableTableFieldAnnotation()       // 开启生成实体时生成字段注解

                    //4.4、Controller策略配置
                    .controllerBuilder()
                    .formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController
                    .enableRestStyle();  //开启生成 @RestController 控制器
            })
            //5、模板
            .templateEngine(new VelocityTemplateEngine())
            /*
            .templateEngine(new FreemarkerTemplateEngine())
            .templateEngine(new BeetlTemplateEngine())
            */
            //6、执行
            .execute();

    }

    // 处理 all 情况
    protected static List<String> getTables(String tables) {
        return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
    }
}

标签:包名,代码生成,mybatisplus,generator,3.5,baomidou,Mybatis,import,com
来源: https://www.cnblogs.com/radish40/p/16348854.html