zoukankan      html  css  js  c++  java
  • MybatisPlus的自动填充功能使用!

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

    • 在指定字段标注注解,生成器策略部分也可以配置。
        // 创建时间
        @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
    @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.class, LocalDateTime.now());
        }
    
        @Override
        public void updateFill(MetaObject metaObject) {
            log.info("start update fill ....");
            this.strictUpdateFill(
                // 起始版本 3.3.0(推荐)
                metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
            // 或者
            this.strictUpdateFill(
                // 起始版本 3.3.3(推荐)
                metaObject, "updateTime", LocalDateTime::now, LocalDateTime.class); 
        }
    }
    

  • 相关阅读:
    引入C/C++动态库
    Linux新手常用命令
    使用Dotfunsctor
    C#上传数据到HTTP,HTTPS 代码示例
    C#多个泛型约束问题
    创建DataTable与DataGridView进行绑定
    递归迭代vector三种方法实现二路归并排序
    区间贪心算法
    递归和非递归实现二叉树的遍历
    C语言实现全排列和回溯法总结
  • 原文地址:https://www.cnblogs.com/summerday152/p/13878176.html
Copyright © 2011-2022 走看看