需求: 通过key来进行模糊搜索,增加时通过级联选择器实现
模糊搜索
service
mybatis-plus的使用,
- wrapper是where语句,
- new Query().getPage(params) 主要负责分页
@Override
public PageUtils search(Map<String, Object> params, long catId) {
System.out.println(params);
System.out.println(catId);
// wrapper 相当于where ,条件限制
QueryWrapper<AttrGroupEntity> wrapper = new QueryWrapper<>();
if(catId!=0){
System.out.println(catId);
wrapper.and(i->i.eq("catelog_id",catId)); // catId and key
}
if(params.containsKey("key")){
String key = (String)params.get("key");
System.out.println(key);
wrapper.and(i->i.eq("attr_group_id",key).or().like("attr_group_name",key));
}
// 组装 page 主要负责分页
IPage<AttrGroupEntity> page = this.page(
new Query<AttrGroupEntity>().getPage(params),
wrapper
);
return new PageUtils(page);
}
级联查询
级联查询的难点是
- 数据库和页面只显示最后一级
- 表单新增和修改的时候接收和传递的是三级(一个数组)
分页
需要用MybatisPlusInterceptor 来包装以前的拦截器
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mi = new MybatisPlusInterceptor();
PaginationInnerInterceptor interceptor = new PaginationInnerInterceptor();
interceptor.setDbType(DbType.MYSQL);
interceptor.setMaxLimit(500L); // 分页最大数量
mi.addInnerInterceptor(interceptor);
return mi;
}
}