首页 > 其他分享 >分享一下mybatisPlus新代码生成器3.5.1以上

分享一下mybatisPlus新代码生成器3.5.1以上

时间:2023-05-19 18:23:00浏览次数:48  
标签:包名 代码生成 mybatisPlus mapper builder 3.5 baomidou import com

pom引入:有MP了就不要再引入mybatis了,会出bug的

<!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <!--mybatis-plus-generator 生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
        </dependency>

代码主体,隐去ip信息。

package com.sugerqube.XXX.Utils;


import com.baomidou.mybatisplus.annotation.IdType;
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 org.junit.Test;

import java.util.Collections;

public class MPGenerator {

    @Test
    public void testGenerator() {

        //1、配置数据源
        FastAutoGenerator.create("jdbc:mysql://XXXXX/XXXXX", "root", "XXXXX")


                //2、全局配置
                .globalConfig(builder -> {
                    builder.author("sugerqube") // 设置作者名
                            .disableOpenDir()   //禁止打开输出目录,默认打开
                            .outputDir(System.getProperty("user.dir") + "/src/main/java")   //设置输出路径:项目的 java 目录下
                            .enableSwagger()   //开启 swagger 模式
//                            .enableKotlin()
//                            .enableSpringdoc()
                            .dateType(DateType.ONLY_DATE)   //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;
                            .commentDate("yyyy-MM-dd hh:mm:ss");   //注释日期
                })
                //3、包配置
                .packageConfig(builder -> {
                    builder.parent("com.sugerqube") // 设置父包名
                            .moduleName("timecocoon")   //设置模块包名
                            .entity("entity")   //pojo 实体类包名
                            .service("service") //Service 包名
                            .serviceImpl("serviceImpl") // ***ServiceImpl 包名
                            .mapper("mapper")   //Mapper 包名
                            .xml("mapper")  //Mapper XML 包名
                            .controller("controller") //Controller 包名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper"));  //配置 mapper.xml 路径信息:项目的 resources 目录下
                })
                //4、策略配置
                .strategyConfig(builder -> {
//                    builder.addInclude("incident_point", "incident_sum", "incident_line", "incident_cause_effect", "graph") // 设置需要生成的数据表名
                    builder.addInclude("incident_point") // 设置需要生成的数据表名
                            .addTablePrefix("t_", "c_") // 设置过滤表前缀

                            //4.1、实体类策略配置
                            .entityBuilder()
                            .enableLombok() //开启 Lombok
                            .disableSerialVersionUID()  //不实现 Serializable 接口,不生产 SerialVersionUID
                            .logicDeleteColumnName("deleted")   //逻辑删除字段名
                            .naming(NamingStrategy.underline_to_camel)  //数据库表映射到实体的命名策略:下划线转驼峰命
                            .columnNaming(NamingStrategy.underline_to_camel)    //数据库表字段映射到实体的命名策略:下划线转驼峰命
                            .idType(IdType.ASSIGN_ID)

//                            .addTableFills(new Column("create_time", FieldFill.INSERT))
//                            .addTableFills(new Property("modifyTime", FieldFill.INSERT_UPDATE))
                            .enableTableFieldAnnotation()       // 开启生成实体时生成字段注解
                            .enableFileOverride()

                            //4.2、Controller策略配置
                            .controllerBuilder()
                            .formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController
                            .enableRestStyle() //开启生成 @RestController 控制器
//                            .enableFileOverride()

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

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


                })
                //6、执行
                .execute();
    }

}

下次有空写一篇详解,带大家简单讲一下使用,看一下文档和源码,新代码生成器的文档有一点点跟不上源码。

标签:包名,代码生成,mybatisPlus,mapper,builder,3.5,baomidou,import,com
From: https://www.cnblogs.com/sugerqube/p/17415978.html

相关文章

  • 3.5 水仙花数
    #include<stdio.h>intmain(){inthun,ten,ind,n;printf("resultis:");for(n=100;n<1000;n++)/*整数的取值范围*/(hun-n/100;ten-(n-hun*100)/10;ind=n%10;if(n==hun*hun*hun+ten*ten*ten+ind*ind*ind)/*各位上的立方和是否与原数n相等*/printf("%d......
  • 3.5 图像分类数据集
     1.下载数据并将数据读到内存 图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。我们将使用类似但更复杂的Fashion-MNIST数据集。mnist_train是一个torchvision.datasets.mnist.FashionMNIST类型(数据集类型?)的对象:它是一个有60000张图片及其标签的数据集:它的......
  • 编程一小时2023.5.18
    #include<iostream>#include<fstream>usingnamespacestd;classDog{public:intgetdogage(){returnage;}intgetdogweight(){returnweight;}voidsetdog(intx,inty){age=x;weight=y;}private:intage,weight;}; intmain(){intv1,v2;......
  • 每日总结-23.5.18
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd&qu......
  • 2023.5.18
    importosimportpandasaspd#添加测试数据os.makedirs(os.path.join('.','data'),exist_ok=True)data_file=os.path.join('.','data','house_tiny.csv')withopen(data_file,'w')asf:   f.write('N......
  • 3.5水仙花数
    1.问题描述输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如,153是“水仙花数”,因为153=13+13+33。2.代码#include <stdio.h> int main(){   int a, b, c; for (int i = 100; i <= 999; i++) { a = i / 100; b =......
  • 2023.5 杂题记录
    2023.5.18开始记的。一道校赛的题(Easy,概率期望DP)题目链接。有一个长度为\(n\)的字符串\(s\),\(s_i\)为o、x、?中的一个。每个?都等概率替换成o或x。设填完之后o连续段长度为\(a_1,a_2,\cdots,a_m\),则对于\(k=1,2,3\),总贡献为\(\sum_{i=1}^ma_i^k\),对\(k=1,2,......
  • MybatisPlus中LamdaQueryWrapper 与 QueryWrapper的使用及区别
    一、QueryWrapper的使用;比如有一张表trolley_itme,需要通过device_id查询出符合条件的所有数据(返回List集合);1、QueryWrapper的最基础的使用方式是这样的:必须写清楚具体的字段名称(即有硬编码的嫌疑)//查询条件的构造器:QueryWrapper<TrolleyItme>queryWrapper=new QueryWra......
  • 2023.5.18——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 2023.5.18 第二阶段冲刺日报(四)
    今天是冲刺第四天,在昨天进行了开发后,在今日的站立会议中,我们进行了内容和问题的总结首先,我们明确了昨天的开发进度:1.在客户端上已经实现了由客户端到服务端的连接2.在安卓端上已经尝试性的使用了一个登录界面,实现视频功能,但是并没有完全成功安卓端截图如下:当前这个页面是尝......