方式一:数据库级别
创建时间create_time字段设置类型为timestamp,默认值为CURRENT_TIMESTAMP;
更新时间update_time字段设置类型为timestamp,默认值为CURRENT_TIMESTAMP,勾选根据当前时间戳更新。
实体类createTime字段设置数据类型为Date;
实体类updateTime字段设置数据类型为Date。
private Date createTime;
private Date updateTime;
注意:
mysql只有是8.0版本以上的,才能设置默认值为CURRENT_TIMESTAMP,否则会保存时提示错误。
版本较低需要升级,可参考这篇博客:https://blog.csdn.net/jack__love/article/details/127514405
升级后查看版本:mysql --version
方式二:代码级别
在实体类字段属性上添加注解
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
编写处理器处理注解文章来源:https://www.toymoban.com/news/detail-634098.html
package cn.com.dwr.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
/**
* 插入时的填充策略
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill.....");
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
/**
* 更新时的填充策略
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill.....");
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
推荐第二种方式!文章来源地址https://www.toymoban.com/news/detail-634098.html
到了这里,关于mybatis-plus 自动填充创建时间/更新时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!