在对数据可进行一些操作的时候,有些字段基本是固定,比如创建时间和修改时间,我们可以利用mybatisplus的自动填充功能来实现。
1.首先在需要在自动填充的字段属性上添加配置
FieldFill.INSERT表示插入操作时起作用,FieldFill.INSERT_UPDATE表示在插入和修改时起作用。
属性的驼峰对应数据库中字段的下划线。比如:createTime对应create_time
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
2.实现MetaObjectHandler接口
@Component
public class MyMetaHandler implements MetaObjectHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(MyMetaHandler.class);
@Override
public void insertFill(MetaObject metaObject) {
LOGGER.info("start insert fill ....");
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
LOGGER.info("start update fill ....");
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
3.测试,插入一条数据
@Test
public void insertUser(){
User user = new User();
user.setAge(42);
user.setEmail("123@163.com");
user.setName("张三");
Integer count = mpMapper.insert(user);
System.out.println(count);
}
4.结果