自动填充
# 更新操作
- 通过id进行更新操作
@Test
public void testUpdateUser(){
User user = new User();
user.setId(1463427155513171970L);
user.setName("stt-new");
int count = userMapper.updateById(user);
System.out.println(count);
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 自动填充
在某些情况下,更新字段希望系统自动添加或者填充
如:create_time,update_time,所有的表都需要该字段的操作,可以给系统自动添加,同理创建者和更新者也可以自动填充
首先更新数据库字段,增加create_time和update_time,都为datetime类型
alter table user
add create_time datetime null;
alter table user
add update_time datetime null;
1
2
3
4
5
2
3
4
5
# 实体类上添加填充注解
// 在插入记录的时候赋值
@TableField(fill= FieldFill.INSERT)
private Date createTime;
// 在插入记录和更新的时候赋值
@TableField(fill= FieldFill.INSERT_UPDATE)
private Date updateTime;
1
2
3
4
5
6
7
2
3
4
5
6
7
# 实现元数据处理类接口
package com.stt.demo.mybatisplus.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 AppMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- 使用创建和更新测试验证
Last Updated: 2022/01/16, 11:29:51