利用mybatisplus中的selectPage、selectMapsPage可以实现自主添加条件分页查询,使用起来挺方便的。在使用selectPage、selectMapsPage,主要是不知道QueryWrapper如何使用,其实可以QueryWrapper有
很多的方法,比如常见的 = 、 < 、 >、 like、 != 、 in等,直接调用,然后填入需要处理的字段和值即可;
下边是一些常见的例子:
taskQueryWrapper.and(wrapper -> wrapper.like("task_name", adminBaseBO.getSearchWord()).or().in("create_user", userIdList));
taskQueryWrapper.like("task_name", adminBaseBO.getSearchWord());
taskQueryWrapper.in("assistantId",userIdList);
taskQueryWrapper.ge(!StringUtils.isEmpty(adminBaseBO.getStartTime()),"create_time",adminBaseBO.getStartTime())
.le(!StringUtils.isEmpty(adminBaseBO.getEndTime()),"create_time",adminBaseBO.getEndTime());
下边是具体实例中使用展示:
selectpage的使用
//以thinkphp框架为例
$test = intval(input('test'));//自定义的查询参数
$name = input('name');//输入关键字的字段
$value = input('searchValue');//当selectpage初始化, 并且value不为空时, 以此为key值
if($value){
$lists = Db::name('test')->where('id',$value)->field('id,name')->select();
$arr['totalRow'] = count($lists);
$arr['list'] = $lists;
$data['values']['gridResult'] = $arr;
return json($data);
}
$where = "id <> 0 ";
if($name) $where.=" and name like '%$name%' ";
$lists = Db::name('test')
->where($where)
->field('id,fname')->select();
//定义返回数据
//$arr['pageSize'] = 10;
//$arr['pageNumber'] = 1;
$arr['totalRow'] = count($lists);
$arr['list'] = $fnames;
$data['values']['gridResult'] = $arr;
return json($data);
selectMapsPage(page, qw)
@Test
public void tes7() {
Page page = new Page(2,5);
QueryWrapper<User> qw = new QueryWrapper<>();
qw.isNotNull("name")
.gt("age",18);
Page page1 = userMapper.selectMapsPage(page, qw);
page.getRecords().forEach(System.out::println);
}
#@lehao#
帮助到您请点赞关注收藏谢谢!!