码迷,mamicode.com
首页 > 其他好文 > 详细

mybatisplus自动填充

时间:2020-10-30 11:44:14      阅读:13      评论:0      收藏:0      [点我收藏+]

标签:修改   需要   oar   one   注意   slf4j   vat   meta   ack   

mybatisplus自动填充

数据库表的创建时间、修改时间,这些个操作一遍都是自动化完成的,我们不希望手动更新。这时候自动填充便可以发挥作用了。

1、方式一

数据库级别(注意:不建议此方式,因为工作中不允许你修改数据库)

步骤

  • 在表中新增字段create_time, update_time,给字段赋予默认值,在需要更新的字段(update_time)选择更新
  • 在实体类增加对应属性

2、方式二

代码级别,建议使用

步骤

  • 在实体类需要自动填充的属性上加注解

    package com.yl.bean;
    
    import com.baomidou.mybatisplus.annotation.FieldFill;
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableField;
    import com.baomidou.mybatisplus.annotation.TableId;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.io.Serializable;
    import java.util.Date;
    
    /**
     * 用户实体类
     */
    @Data
    @NoArgsConstructor
    public class User implements Serializable {
        @TableId(type=IdType.AUTO)
        private Integer id;
        private String name;
        private Integer age;
        private String email;
        @TableField(fill = FieldFill.INSERT )//插入数据时更新该字段
        private Date createTime;
        @TableField(fill = FieldFill.INSERT_UPDATE)//插入和修改时更新该字段
        private Date updateTime;
    }
    
    

    注意:数据库要有对应字段,不会自动给你生成字段

  • 编写处理器来处理自动填充注解

    package com.yl.handler;
    
    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.ibatis.reflection.MetaObject;
    import org.springframework.stereotype.Component;
    
    import java.util.Date;
    
    /**
     * 自动填充处理器实现类
     */
    @Slf4j//配置日志输出,也可以不配置
    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {
        /**
         * 插入元对象字段填充(用于插入时对公共字段的填充)
         *
         * @param metaObject 元对象
         */
        @Override
        public void insertFill(MetaObject metaObject) {
            //日志输出
            log.info("start insert fill.....");
            //字段填充
            this.setFieldValByName("createTime",new Date(),metaObject);
            this.setFieldValByName("updateTime",new Date(),metaObject);
    
        }
    
        /**
         * 更新元对象字段填充(用于更新时对公共字段的填充)
         *
         * @param metaObject 元对象
         */
        @Override
        public void updateFill(MetaObject metaObject) {
            //日志输出
            log.info("start update fill.....");
            //字段填充
            this.setFieldValByName("updateTime",new Date(),metaObject);
        }
    }
    
    

mybatisplus自动填充

标签:修改   需要   oar   one   注意   slf4j   vat   meta   ack   

原文地址:https://www.cnblogs.com/Y-wee/p/13895964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!