1.数据库自带的方法
很多数据库系统其实有时间类型的自动填充,例如mysql,只要你在属性的默认值里面填上CURRENT_TIMESTAMP
即可完成插入时候的时间自动填充
2.Mybatis Plus的自动填充设置
Mybatis Plus的自动填充不仅仅可以设置插入的自动填充还可以设置添加的自动填充,填充的值也不仅仅是时间,可以是任何类型。
-
此处是在快速开始的代码为例的代码上进行修改
-
给数据库创建字段
-
首先在实体类的属性上添加注解
package com.pning.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
private Date autoTime;//通过数据库字段设定默认值,数据库自己在插入的时候填充时间
@TableField(fill = FieldFill.INSERT)
private Date creatTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
- 创建一个自己的handler
package com.pning.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class AutoFIllHandler implements MetaObjectHandler {
//插入时候的填充策略
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("creatTime",new Date(),metaObject);//列名,数据,MetaObject对象
}
//更新时候的填充策略
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);//列名,数据,MetaObject对象
}
}
- 运行测试类即可
代码
代码自取