ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mybatis-plus代码生成器3.5.1

2022-06-06 17:00:09  阅读:175  来源: 互联网

标签:包名 代码生成 mybatisplus generator 3.5 baomidou Mybatis import com


导入依赖

    <!--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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有