mybatisplus实现自动填充时间的项目实践
作者:风也温柔☆
在数据库操作中,频繁设置创建时间和更新时间字段非常繁琐,通过使用MyBatis-Plus的自动填充功能,可以简化操作,本文就来详细的介绍一下,感兴趣的可以了解一下
数据库表中的字段
- 创建时间 (createTime)
- 更新时间 (updateTime)
每次 增删改查的时候,需要通过对Entity的字段(createTime,updateTime)进行set设置,但是,每次增删改 都要set设置比较麻烦。
- 使用自动填充功能,就不用我们自己set了。
1、在实体类Entity中 添加注解
- @TableField(fill = FieldFill.INSERT) //插入时自动填充
- @TableField(fill = FieldFill.INSERT_UPDATE) // 插入 和 更新时 自动填充
2、配置自动填充 拦截器
3、数据库表中 创建时间,更新时间,创建人,更新人 字段名。
4、自动填充 拦截器
MyMetaObjectHandler
package com.sangeng.handler.mybatisplus; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.sangeng.utils.SecurityUtils; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; @Component public class MyMetaObjectHandler implements MetaObjectHandler {//实现MetaObjectHandler //配置自动填充 拦截器 //insert操作时填充方法 @Override public void insertFill(MetaObject metaObject) { Long userId = null; // try { userId = SecurityUtils.getUserId(); //从token中拿到userid,自动填充 // } catch (Exception e) { e.printStackTrace(); // 注册的时候,不能获取当前userid,所以userid设置为-1 // userId = -1L;//表示是自己创建 // } this.setFieldValByName("createTime", new Date(), metaObject); //创建时间 this.setFieldValByName("createBy",userId , metaObject); //创建人 this.setFieldValByName("updateTime", new Date(), metaObject); //更新时间 this.setFieldValByName("updateBy", userId, metaObject); //更新人 } //update操作时填充方法 @Override public void updateFill(MetaObject metaObject) { //填充 更新时间 this.setFieldValByName("updateTime", new Date(), metaObject); // this.setFieldValByName(" ", SecurityUtils.getUserId(), metaObject); } }
实体类
@TableField(fill = FieldFill.INSERT) //插入时 自动添加创建人 private Long createBy; @TableField(fill = FieldFill.INSERT) //插入时 自动添加 创建时间 private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新时 自动添加 更新人 private Long updateBy; @TableField(fill = FieldFill.INSERT_UPDATE) //插入更新时 自动添加 更新时间 private Date updateTime;
到此这篇关于mybatisplus实现自动填充时间的项目实践的文章就介绍到这了,更多相关mybatisplus 自动填充时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!