MyBatis-Plus标签@TableField之fill自动填充方式

 更新时间:2022年06月17日 10:52:42   作者:weixin_46084802  
这篇文章主要介绍了MyBatis-Plus标签@TableField之fill自动填充方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@TableField之fill自动填充

mybatis-plus中

TableField映射非主键字段,value映射字段名,exist表示是否为数据库字段,select表示是否查询该字段,fill表示是否自动填充

实体类

@Data
public class User {
    @TableId(type = IdType.NONE)
    private Long id;
    private String userName;
    private String passWord;
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

自动填充处理器

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}

MyBatis-Plus自动填充

mybatis-plus 自动填充公共字段

直接上代码

首先我们要实现mybatis-plus的MetaObjectHandler接口,代码如下: 

/**
 * @USER WSF
 * @DATE 2020/8/10 13:41
 **/
@SpringBootConfiguration
public class MetaObjectConfig implements MetaObjectHandler
{
    @Override
    public void insertFill(MetaObject metaObject) {
        //拿到类是否有此字段
        boolean hasGetter = metaObject.hasGetter("createDate");
        if (hasGetter)
        {
            // this.strictInsertFill(metaObject,"字段名对应你的实体类的字段名",String.class,"Value");
            this.strictInsertFill(metaObject,"createDate", LocalDateTime.class,LocalDateTime.now());
        }
    }
    @Override
    public void updateFill(MetaObject metaObject)
    {
        Object upDateTime = getFieldValByName("upDateTime", metaObject);
        if (upDateTime == null)
        {
            this.strictUpdateFill(metaObject,"upDate",LocalDateTime.class,LocalDateTime.now());
        }
    }
}

实体类

@Data
@TableName("t_user")
public class User {
    
    @TableId(type = IdType.AUTO)
    private Integer id;
    
    @TableField("user_name")
    private String username;
    
    @TableField("pass_word")
    private String password;
    /**
     * 如果要实现自动填充则加上
     * fill = FieldFill.INSERT新增时自动填充
     * fill = fill = FieldFill.INSERT_UPDATE新增和修改都自动填充
     * fill = FieldFill.DEFAULT 删除时自动填充
     */
    @TableField(value = "crate_date",fill = FieldFill.INSERT)
    private LocalDateTime createDate;  //新增时间  
    
    @TableField(value = "up_name",fill = FieldFill.UPDATE)
    private String upName;  //更新人
    
    // ...................
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Mybatis-Plus自动填充的实现示例

    Mybatis-Plus自动填充的实现示例

    这篇文章主要介绍了Mybatis-Plus自动填充的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Java异步调用转同步的方法

    Java异步调用转同步的方法

    这篇文章主要介绍了Java异步调用转同步的方法,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • Mybatis给数据库敏感字段加解密详解

    Mybatis给数据库敏感字段加解密详解

    这篇文章主要介绍了Mybatis给数据库敏感字段加解密详解,为了保护数据库敏感字段数据安全,有时候我们需要将敏感数据加密入库,查询时再解密成明文,我们可以利用Mybatis自定义TypeHandler来处理,需要的朋友可以参考下
    2023-11-11
  • java如何在应用代码里捕获线程堆栈

    java如何在应用代码里捕获线程堆栈

    这篇文章主要为大家介绍了java如何在应用代码里捕获线程堆栈实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • java线程封闭之栈封闭和ThreadLocal

    java线程封闭之栈封闭和ThreadLocal

    这篇文章主要介绍了java线程封闭之栈封闭和ThreadLocal,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Guava事件总线应用场景最佳实践

    Guava事件总线应用场景最佳实践

    这篇文章主要为大家介绍了Guava事件总线应用场景最佳实践,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 最新IntelliJ IDEA 2020版本的安装教程详解

    最新IntelliJ IDEA 2020版本的安装教程详解

    这篇文章主要介绍了最新IntelliJ IDEA 2020版本的安装教程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • java实现二叉树的创建及5种遍历方法(总结)

    java实现二叉树的创建及5种遍历方法(总结)

    下面小编就为大家带来一篇java实现二叉树的创建及5种遍历方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Java 编程中十个处理异常的建议

    Java 编程中十个处理异常的建议

    这篇文章主要介绍了Java 编程中十个处理异常的建议,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JVM中四种GC算法案例详解

    JVM中四种GC算法案例详解

    这篇文章主要介绍了JVM中四种GC算法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09

最新评论