1.快速开始
2.代码生成器
3.CRUD接口——Service CRUD接口
4.CRUD接口——Mapper CRUD接口
5.条件构造器
6.分页插件
7.Sequence主键
8.自定义ID生成器
9.逻辑删除
10.乐观锁插件
11.自动填充
在我的理解中,自动填充就是一些原本需要我们手动去敲代码填充数据库字段中的值,现在改为由mybatis-plus给你做了
比如,你的数据库中含有数据的添加时间(gmt_create)和修改时间(gmt_modified),你原来添加数据的时候要set gmt_create ,修改的时候要set
gmt_modified,有了mybatis-plus,这些操作全部就不要了,仅仅只需要简单的配置一下就可以了。
1.数据库表字段添加
2.实体类变量添加
@ApiModelProperty(value = "添加时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime gmtCreate;
@ApiModelProperty(value = "修改时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime gmtModified;
3.自定义实现类
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill ....");
this.setFieldValByName("gmtCreate", LocalDateTime.now(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.setFieldValByName("gmtCreate", LocalDateTime.now(), metaObject);
this.setFieldValByName("gmtModified", LocalDateTime.now(), metaObject);
}
}
测试代码:
//插入操作
@RequestMapping("/insert")
public Integer version() {
User user = new User();
user.setId(8L);
user.setName("hk4445");
user.setAge(28);
user.setEmail("2284612137@qq.com");
int insert = userMapper.insert(user);
return insert;
}
//更新操作
@RequestMapping("/update")
public Integer update() {
User user = userMapper.selectById(8L);
user.setName("hk10101");
int update = userMapper.updateById(user);
return update;
}
初始数据库:
访问 http://localhost:8080/hk/insert 后的数据库
访问 http://localhost:8080/hk/update 后的数据库
从上面可以看出,我们并没有在插入数据到数据库的时候添加时间值
而是通过配置进入
自动填充就是这个意思