MybatisPlus的自动填充功能使用!

前端之家收集整理的这篇文章主要介绍了MybatisPlus的自动填充功能使用!前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有时我们希望在更新数据的时候,自动完成某些字段的值的填充,如创建一个实体的时候,自动生成创建时间,更新的时候自动改变更新时间等。

  • 在指定字段标注注解,生成器策略部分也可以配置。
  • @H_403_5@
        // 创建时间
        @TableField(fill = FieldFill.INSERT)
        private Date createTime;
    
        // 更新时间
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
    
    public enum FieldFill {
        /**
         * 默认不处理
         */
        DEFAULT,/**
         * 插入填充字段
         */
        INSERT,/**
         * 更新填充字段
         */
        UPDATE,/**
         * 插入和更新填充字段
         */
        INSERT_UPDATE
    }
    
    • 实现元对象处理接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
    • @H_403_5@
      @Slf4j
      @Component
      public class MyMetaObjectHandler implements MetaObjectHandler {
      
          // fieldName 指的是实体类的属性名,而不是数据库的字段名
          @Override
          public void insertFill(MetaObject MetaObject) {
              log.info("start insert fill ....");
              this.strictInsertFill(
                  MetaObject,"createTime",LocalDateTime.class,LocalDateTime.now());
              this.strictInsertFill(
                  MetaObject,"updateTime",LocalDateTime.now());
          }
      
          @Override
          public void updateFill(MetaObject MetaObject) {
              log.info("start update fill ....");
              this.strictUpdateFill(
                  // 起始版本 3.3.0(推荐)
                  MetaObject,LocalDateTime.now());
              // 或者
              this.strictUpdateFill(
                  // 起始版本 3.3.3(推荐)
                  MetaObject,LocalDateTime::now,LocalDateTime.class); 
          }
      }
      

猜你在找的Mybatis相关文章