MybatisPlus实现插入或更新数据时自动生成时间戳
MybatisPlus实现插入或更新数据时,自动生成时间戳功能 首先看下数据库表: 我需要在插入或更新数据时,为create_time字段自动生成时间戳 只需下面两步即可完成: 1.在pojo类中,需要生成时间戳的字段上设置如下两个注解
@TableField(value = "create_time",fill =FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
其中@TableField注解中value对应的是表中的create_time字段,如果pojo类的字段名与表中字段名相同,mybatis-plus会自动进行映射,该配置可以省略,fill 这个填充配置有多种策略可选: INSERT_UPDATE:在更新与插入时进行填充,其余的大家应该可以举一反三了吧。 @JsonFormat定义了时间戳的格式类型,后面的timezone为时间戳设置了时区 以上第一步就完成了,只要添加两个注解就搞定。 2.第二步,实现MetaObjectHandler接口完成自定义填充逻辑定义 定义一个类实现MetaObjectHandler接口
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; /** * @author wjs * @description 新增与修改数据时自动生成时间戳 * @date 2022-08-22 16:56 */ // 将实现类注入到springboot容器中 @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { // createTime 这个字段与pojo类中字段对应 this.setFieldValByName("createTime",new Date(),metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("createTime",new Date(),metaObject); } }
测试结果: 在插入数据时,无需设置时间戳,mybatis-plus会自动为我们生成
下一篇:
Hexo安装、使用、部署教程