美文网首页
mybatis plus字段填充配置并使用

mybatis plus字段填充配置并使用

作者: 拄杖忙学轻声码 | 来源:发表于2021-08-30 17:36 被阅读0次

    mybatis plus字段填充其实就是持久化时给对象字段属性设置默认值,编写配置类实现 MetaObjectHandler 接口,重写 insertFill 或者 updateFill 方法:

    一、编写配置类,重写 insertFill 和 updateFill 方法:

    package com.svw.newsvwuc.assess.configure;
    
    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    import com.baomidou.mybatisplus.core.injector.ISqlInjector;
    import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.ibatis.reflection.MetaObject;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import java.util.Date;
    
    /**
     * <p>ClassName: MyBatisPlusConfigure</p>
     */
    @Slf4j
    @Configuration
    public class MyBatisPlusConfigure implements MetaObjectHandler {
    
        /**
         * <p> mybatis-plus sql注入器 </p>
         * <p> mybatis-plus 注入逻辑删除 </p>
         **/
        @Bean
        public ISqlInjector sqlInjector() {
            return new LogicSqlInjector();
        }
    
        /**
         * <p> 插入时自动填充创建日期和修改日期 </p>
        **/
        @Override
        public void insertFill(MetaObject metaObject) {
            log.info("=================插入记录自动填充创建和更新日期 start=================");
            Date date=new Date();
            this.setFieldValByName("createDate",date,metaObject);
            this.setFieldValByName("updateDate",date,metaObject);
        }
    
    
        /**
         * <p> 修改时自动设置修改日期 </p>
         **/
        @Override
        public void updateFill(MetaObject metaObject) {
            log.info("=================修改记录自动设置更新日期 start=================");
            this.setFieldValByName("updateDate",new Date(),metaObject);
        }
    
    }
    

    二、使用字段填充:
    在实体类中属性字段加入填充注解 fill = FieldFill.INSERT或fill = FieldFill.UPDATE 即可,当进行新增或更新操作会赋值默认值,不需要开发人员手动赋值

        @ApiModelProperty(value = "建立时间")
        @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
        @TableField(value = "CREATE_DATE", fill = FieldFill.INSERT)
        private Date createDate;
    
        @ApiModelProperty(value = "更新时间")
        @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
        @TableField(value = "UPDATE_DATE", fill = FieldFill.INSERT_UPDATE)
        private Date updateDate;
    

    相关文章

      网友评论

          本文标题:mybatis plus字段填充配置并使用

          本文链接:https://www.haomeiwen.com/subject/lusoiltx.html