Mybatis-plus自定义模板生成代码

news/2024/7/5 3:20:36


Mybatis-plus自定义模板生成代码

参考:

自定义ID生成器 | MyBatis-Plus

自定义属性注入到模板 - MyBatis Plus 教程

MyBatis Plus 代码生成器(最新版本:V3.5.3)使用指南 - 掘金

mybatis plus generator 3.5.1 从了解到自定义定制VO、PO、DTO_mybatis-plus-generator 3.5.1-CSDN博客

https://www.cnblogs.com/aland-1415/p/12979440.html

java代码生成部分:

  FastAutoGenerator.create
  ... ...
 .injectionConfig(consumer -> {
    /**自定义生成模板参数**/
    Map<String,Object> paramMap = new HashMap<>();
    paramMap.put("yourpackage","com.crabdave");//定义一个变量,方便在模板中引用
    consumer.customMap(paramMap);

    /** 自定义 生成类**/
    Map<String, String> customFile = new HashMap<>();
    CustomFile.Builder builder = new CustomFile.Builder();
    //生成到dto目录下
    builder.packageName("dto").fileName("DTO.java").templatePath("/templates/DTO.java.vm")
            .filePath("D:\\workspace\\yourproject\\src\\main\\java\\com\\crabdave\\mode")
            .enableFileOverride();//覆盖生成
    consumer.customFile(builder.build());
})
        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.5</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.5</version>
        </dependency>

模板部分:

DTO.java.vm模板文件里引用变量${yourpackage}

package ${yourpackage}.dto;

时间类型加两个格式注解


#if("$!field.propertyType" == "LocalDateTime")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private ${field.propertyType} ${field.propertyName};
#end

首字母大写

capitalName生成的首字母是大写,但对于aBcde这种转换不了,但lombok会转成ABcd
#foreach($field in ${table.fields})
  get${field.capitalName}
#end

其它

实体字段转数据表字段功能接口

Lambda表达式获取传入的方法引用的方法名_该方法仅能传入 lambda 表达式产生的合成类-CSDN博客

com.baomidou.mybatisplus.core.toolkit.StringUtils.camelToUnderline("userName");

返回 user_name

MyBatisPlus使用LambdaQueryWrapper时要注意防止出现“Didn‘t start with ‘is‘, ‘get‘ or ‘set‘“错误

"MyBatisPlus的条件构造器不会真的去调用SFunction这个函数式接口而是只解析实际的方法名.如果解析的是Lambbda表达式,那么方法名跟数据库的列名匹配不上就会报错; 如果是方法引用那么方法名通过is/gey/set规则就能找到相应的字段名然后在根据规则转换成数据库表的列名"

MyBatisPlus使用LambdaQueryWrapper时要注意防止出现“Didn‘t start with ‘is‘, ‘get‘ or ‘set‘“错误_mybatis_爱游泳的老白-华为云开发者联盟

关于lambda写法的疑问 · Issue #3986 · baomidou/mybatis-plus · GitHub


http://lihuaxi.xjx100.cn/news/2056305.html

相关文章

Go语言必知必会100问题-11 使用选项模式

使用选项模式 在设计API时&#xff0c;可能会遇到一个问题&#xff1a;如何处理可选配置&#xff1f;有效的解决可选配置问题可以提高API的灵活性。本文通过一个具体示例说明处理可选配置的一些方法。该示例的要求是设计一个对外提供创建HTTP服务器的库函数。函数定义如下&…

[MYSQL数据库]--mysql的基础知识

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、数据库…

优思学院|质量工程师需要学习什么软件?

初入职质量工程师的朋友常常会问&#xff1a;质量工程师需要学习什么软件&#xff1f;在质量控制和管理的世界里&#xff0c;拥有强大的数据分析工具是走向成功的关键&#xff0c;因此&#xff0c;对于质量工程师来说&#xff0c;掌握正确的软件不仅能提升工作效率&#xff0c;…

ad18学习笔记十六:如何放置精准焊盘到特定位置,捕抓功能的讲解

网上倒是一堆相关的指导 AD软件熟练度提升&#xff0c;如何设置板框捕捉&#xff1f;_哔哩哔哩_bilibili 关于Altium Designer 20 的捕抓功能的讲解_ad捕捉设置-CSDN博客 AD软件捕捉进阶实例&#xff0c;如何精确的放置布局元器件&#xff1f;_哔哩哔哩_bilibili AD绘制PCB…

MySQLBackup备份数据库

环境&#xff1a;MySQL 8.0.36 1、安装部署 [rootnode5 ~]# wget -c https://edelivery.oracle.com/osdc/softwareDownload?fileNameV1040085-01.zip [rootnode5 ~]# ll total 22776 -rw-------. 1 root root 1066 Jan 21 14:59 anaconda-ks.cfg -r–r–r–. 1 root root 23…

【Linux】进程优先级以及Linux内核进程调度队列的简要介绍

进程优先级 基本概念查看系统进程修改进程的优先级Linux2.6内核进程调度队列的简要介绍和进程优先级有关的概念进程切换 基本概念 为什么会存在进程优先级&#xff1f;   进程优先级用于确定在资源竞争的情况下&#xff0c;哪个进程将被操作系统调度为下一个运行的进程。进程…

Java的编程之旅31——多态

1.多态的简介 在Java中&#xff0c;多态是指通过父类的引用调用子类的对象&#xff0c;实现不同类型的对象的方法调用。 Java中的多态通过继承和重写实现。当子类继承父类并重写父类的方法时&#xff0c;可以通过父类的引用调用子类的对象&#xff0c;并且根据运行时实际的类型…

Orange3数据预处理(索引选择器组件)

组件描述 数据行即使在某些或全部原始变量被来自原始变量的计算变量替换时&#xff0c;也保持其身份。 此小部件获取两个数据表&#xff08;“数据”和“数据子集”&#xff09;&#xff0c;它们可以追溯到同一来源。基于行身份而非实际数据&#xff0c;它会从“数据”中选择所…