MyBatis-Plus 自动填充
作者:互联网
看狂神视频然后总结笔记,为以后自己复习用,如有错误,可在评论中指出,一起成长。
前言
在项目中,有一些公共的数据需要修改,但是我们不希望手动去更新,需自动化完成,create_time,update_time等字段。
阿里巴巴开发手册:所有的数据库表:gmt_create、gmt_modified几乎所有的表都要配置上!而且需要自动化!
自动填充
方式一:数据库级别实现
1、在表中新增字段create_time,update_time
注意:mysql版本低于5.6增加列失败
MySQL的日期类型可以使用CURRENT_TIMESTAMP来指定默认值,
但是这个跟MySQL的版本及日期的具体类型有关,
只有5.6之后的版本才能使用CURRENT_TIMESTAMP作为DATETIME的默认值。
tip : 查看mysql版本,进入cmd -> 登录 -> select version(
下载安装mysql:https://www.cnblogs.com/honeynan/p/12408119.html
2、再次测试插入方法,我们需要先把实体类同步!
private Date createTime;
private Date updateTime;
3、再次更新查看结果即可
方式二:代码级别
1、删除数据库的默认值、更新操作!
2、实体类字段属性上需要增加注解
// 字段添加填充内容
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
3、编写处理器来处理这个注解!
@Slf4j //日志
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
//插入时填充策略
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill....");
this.setFieldValByName("createTime",new Date(), metaObject);
this.setFieldValByName("updateTime",new Date(), metaObject);
}
//更新时填充策略
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill....");
this.setFieldValByName("updateTime",new Date(), metaObject);
}
}
标签:updateTime,metaObject,填充,private,Date,Plus,time,MyBatis,fill 来源: https://blog.csdn.net/qq_44866169/article/details/112636959