首页 > 其他分享 >Mybatis-plus自动填充功能

Mybatis-plus自动填充功能

时间:2023-08-13 15:32:53浏览次数:30  
标签:INSERT metaObject 填充 FieldFill Date plus Mybatis public

Mybatis-plus自动填充功能

使用

  • 实现元对象处理器接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
  • 注解填充字段 @TableField(.. fill = FieldFill.INSERT) 生成器策略部分也可以配置!
public class User {

    // 注意!这里需要标记为填充字段
    @TableField(.. fill = FieldFill.INSERT)
    private String fillField;

    ....
}
  • 自定义实现类 MyMetaObjectHandler
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "gmtCreate", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "gmtModified", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
    }
}

注意

  • 填充原理是直接给entity的属性设置值!!!
  • 注解则是指定该属性在对应情况下必有值,如果无值则入库会是null
  • MetaObjectHandler提供的默认方法的策略均为:如果属性有值则不覆盖,如果填充值为null则不填充
  • 字段必须声明TableField注解,属性fill选择对应策略,该声明告知Mybatis-Plus需要预留注入SQL字段
  • 填充处理器MyMetaObjectHandler在 Spring Boot 中需要声明@Component@Bean注入
  • 要想根据注解FieldFill.xxx字段名以及字段类型来区分必须使用父类的strictInsertFill或者strictUpdateFill方法
  • 不需要根据任何来区分可以使用父类的fillStrategy方法
public enum FieldFill {
    /**
     * 默认不处理
     */
    DEFAULT,
    /**
     * 插入填充字段
     */
    INSERT,
    /**
     * 更新填充字段
     */
    UPDATE,
    /**
     * 插入和更新填充字段
     */
    INSERT_UPDATE
}

标签:INSERT,metaObject,填充,FieldFill,Date,plus,Mybatis,public
From: https://blog.51cto.com/u_11906056/7067572

相关文章

  • Mybatis-plus自动填充starter
    Mybatis-plus自动填充starter前言:上一篇我们说了自动填充,现在利用spring-boot把它抽象为一个组件,可以在项目中共同使用工具IDEA2021.1.1MAVEN3.6.3JDK1.8spring-boot2.1.3.RELEASE配置一、引入依赖<!--mybatis-plusstart勿需再引入mybatis依赖了--><depe......
  • mybatis框架
    mybatis框架1、mybatis框架介绍MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS......
  • mybatisplus
    注解@TableId(type=IdType.AUTO)表示主键自增@TableField(value="create_time")表示字段"()"里的value对应数据库的表名@TableLogic逻辑删除mapper接口创建service接口创建serviceImpl类创建配置分页插件:创建一个类,在类上面标注注解并在类中实现官方给的方法@C......
  • java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.StringUtils.i
    1、原因这是由于两个版本不一致导致的;<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version&......
  • c、SQLPlus命令
    SQL*Plus命令SQL*Plus与数据库的交互Oracle的SQL*Plus是与Oracle进行交互的客户端工具,在SQL*Plus中,可以运行SQL*Plus命令与SQL*Plus语句,主要介绍SQL*Plus命令。SQL*Plus是一个基于C/S两层结构的客户端操作工具,包括客户层(即命令行窗口)和服务器层(即数据库实例),这两层既可以在一......
  • mybatis plus所需配置
    yml配置mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl#日志mapper-locations:classpath:mapper/*.xml#映射type-enums-package:com.dxc.zeno.enums#枚举类配置类@Configuration@MapperScan("com.dxc.z......
  • 第一个Mybatis程序
    1、首先创建一个数据库CREATEDATABASEmybatis;CREATETABLE`user`(`id`INT(20)NOTNULLPRIMARYKEY,`name`VARCHAR(30)NOTNULL,`pwd`VARCHAR(30)NOTNULL)ENGINE=INNODBDEFAULTCHARSET=utf8;INSERTINTO`user`(`id`,`name`,`pwd`)VALUES(1,'张三'......
  • Mybatis如何添加映射接口和映射文件?
    Mybatis是一种半ORM框架,需要我们手动编写SQL语句。在启动时,它会将SQL语句等信息读取到内存中,便于操作数据库时进行参数解析、执行SQL和结果封装。使用过Mybatis的都知道,它有两种方式编写SQL语句:xml映射文件映射接口方法上的注解在启动Mybatis时,可以通过Configuration的addM......
  • Mybatis简介
    1.1、Mybatis简介●MyBatis是一款优秀的持久层框架●它支持定制化SQL、存储过程以及高级映射。●MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。●MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POjO(PlainOldJavaObjects,普通老式Java......
  • MyBatis 实例
    MyBatis简介MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java......