MybatisPlus中设置自动填充时间@TableField注解的使用

导读:本篇文章讲解 MybatisPlus中设置自动填充时间@TableField注解的使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


字段填充策略FieldFill

解释
DEFAULT 默认不处理
INSERT 插入时自动填充
UPDATE 更新时自动填充
INSERT_UPDATE 插入和更新时自动填充

实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Project implements Serializable {
    private static final long serialVersionUID = 666539098716282294L;
   
   ...
   
    /**
    * 开始时间
    */
    @TableField(fill = FieldFill.INSERT)
    private Date startTime;
    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;


}

在上面程序中,通过对startTime字段添加注解@TableField(fill = FieldFill.INSERT),可以实现在进行插入(insert)操作时对该字段进行自动填充;通过对updateTime字段添加注解 @TableField(fill = FieldFill.INSERT_UPDATE),可以实现在进行插入(insert)和更新(update)操作时对该字段进行自动填充;

注意:只有上面是不能实现自动填充的,我们还需要实现包com.baomidou.mybatisplus.core.handlers下的一个接口MetaObjectHandler

自动填充处理类(没有这一步数据库不会自动插入)

代码如下(示例):

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

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(),metaObject);
    }
}

这样我们在具体业务中对实体类进行赋值就可以不用对这些公共字段进行赋值,在执行插入或者更新时就能自动赋值并插入数据库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119782.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!