这里指定每页显示5条,却把所有的记录数都显示出来了
之前是可以的,然后发现:PageHelper.startPage(pageNum,pageSize) 和执行sql的语句 顺序颠倒了,然后就出错了。
然后,自己就验证一把,在PageHelper.startPage(pageNum,pageSize)语句执行之前和执行之后分别执行同一sql,看看结果是否相同。
验证代码如下:
- @RequestMapping("/furnsByCondition")
- @ResponseBody
- public Msg listFurnsByCondition(@RequestParam(defaultValue = "1") Integer pageNum,
- @RequestParam(defaultValue = "5") Integer pageSize,@RequestParam(defaultValue = "")String search){
-
-
- List
furnList1 = furnService.findByCondition(search); - System.out.println("在PageHelper.startPage()【之前】查询的结果记录数:"+furnList1.size());
- PageHelper.startPage(pageNum,pageSize);
- List
furnList = furnService.findByCondition(search); - System.out.println("在PageHelper.startPage()【之后】查询的结果记录数:"+furnList.size());
- PageInfo pageInfo = new PageInfo(furnList,pageSize);
-
- Msg resultMsg = Msg.success();
- resultMsg.add("pageInfo",pageInfo);
- return resultMsg;
- }
输出结果:
- 在PageHelper.startPage()【之前】查询的结果记录数:7
- 在PageHelper.startPage()【之后】查询的结果记录数:5
说明:
前者查询满足条件的所有记录。并没有进行分页查询
后者查询满足条件的所有记录。同时进行分页查询
在执行PageHelper.startPage(pageNum,pageSize);之前执行的sql并不会进行分页查询,只有之后执行的才会进行分页查询。
注意:sql语句的执行要在PageHelper.startPage(pageNum,pageSize);之后。