mybatis-plus 代码生成器配置新

用以记录
**

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

**

项目结构

在这里插入图片描述

添加依赖

		<!--    mybatis-plus 代码生成依赖     -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>

        <!--    下面两个都是模板,可以根据自己的情况选择    -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.9</version>
        </dependency>
        <!--    mybatis-plus 代码生成依赖     -->
package com.example.codegenerator;

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.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Collections;

@SpringBootTest
class CodeGeneratorApplicationTests {

    @Test
    void contextLoads() {

        //  获取当前项目路径
        String property = System.getProperty("user.dir");
        //  文件生成地址
        String fileGenerationAddress = "/src/main/java";
        //  xml存放的路径
        String thePathWhereTheXmlIsStored = "/src/main/java/resources/mybatis/mapperxml";

        //  网址:https://baomidou.com/pages/981406/
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/demo_login?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8",
                "root", "root").globalConfig(builder -> {
            builder.author("WangZhen")//作者
                    .fileOverride()//覆盖已经存在的文件
//                    .outputDir("D://baomidou")//文件生成地址
                    .outputDir(property + fileGenerationAddress)//文件生成地址
                    .commentDate("yyyy-MM-dd HH:mm:ss");//时间格式

        }).packageConfig(builder -> {//包设置
            //  TODO 需要修改
            builder.parent("com.example")//父类路径设置
                    //  TODO 需要修改
                    .moduleName("codegenerator")//模块名称,指定生成在哪个模块
                    .entity("pojo")//实体类包名
                    .service("service")//服务类包名
                    .serviceImpl("service.impl")//服务类包名
                    .controller("controller")//controller层包名
                    .mapper("mapper")//dao层包名
                    .xml("mappers")//xml包名
                    .pathInfo(Collections.singletonMap(OutputFile.mapperXml, property + thePathWhereTheXmlIsStored));//xml存放的路径
        }).strategyConfig(builder -> {//设置文件生成名字
            //  TODO 需要修改
            builder.addInclude("user")//需要生成的表名,用逗号隔开,可以多个表生成
                    .addTablePrefix()//增加过滤表前缀
                    .addTableSuffix()//增加过滤表后缀
                    .addFieldPrefix("")//指定表的哪些字段去掉
                    .addFieldSuffix()//增加过滤字段后缀
                    .serviceBuilder()//开始设置服务层
                    .formatServiceFileName("%sService")//这里整体为 %s(代表表名)+ 后面的Service
                    .formatServiceImplFileName("%sServiceImpl")
                    .entityBuilder()//实体策略配置
                    .enableColumnConstant()//生成字段常量
                    .naming(NamingStrategy.underline_to_camel)//生成符合驼峰命名
                    .enableChainModel()//支持链式书写
                    .enableLombok()//支持lombok
//                    .versionColumnName("version")//指定乐观锁的字段名称
//                    .addTableFills(new Property("gmtCreate", FieldFill.INSERT))
//                    .addTableFills(new Property("gmtModified", FieldFill.INSERT_UPDATE))
                    .logicDeletePropertyName("deleted")//指出逻辑删除
                    .enableTableFieldAnnotation()//提供字段注解
                    .controllerBuilder()
                    .formatFileName("%sController")
                    .enableRestStyle()//生成@restcontroller 风格
                    .mapperBuilder()
                    .superClass(BaseMapper.class)//继承
                    .formatMapperFileName("%sDao")
                    .enableMapperAnnotation()//开启注解
                    .formatXmlFileName("%sMapper");

        }).strategyConfig(builder -> {
            builder.mapperBuilder()
                    .superClass(BaseMapper.class)
                    .enableBaseResultMap()
                    .enableBaseColumnList()
//                    .cache(MyMapperCache.class)
                    .formatMapperFileName("%sDao")
                    .formatXmlFileName("%sXml");
        }).templateEngine(new VelocityTemplateEngine()).execute();//以模板的方式生成
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值