1.自动填充
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@Slf4j
@Component
//自动填充
public class MyMetaObjectHandler implements MetaObjectHandler {
//插入时候的更新策略
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill...");
//setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject)
//字段名,插入的字段值,要给哪个数据处理
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
//更新时候的填充策略
@Override
public void updateFill(MetaObject metaObject) {
log.info("start insert fill...");
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
2.逻辑删除
数据库中增加deleted
字段
实体类中增加
@TableLogic//逻辑删除
private Integer deleted;
properties中 增加:
#配置逻辑删除
mybatis-plus.global-config.db-config.logic-delete-field=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
测试逻辑删除:
@Test
public void testDeletedById(){
int i = userMapper.deleteById(5L);
System.out.println(i);
}
3.条件构造器
@Test
public void contextLoads(){
//查询姓名年龄不为空,年龄大于1的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.isNotNull("name")
.isNotNull("email")
.gt("age",1);
userMapper.selectList(wrapper).forEach(System.out::println);
}