为什么在使用PageHelper插件时,指定的每页记录数大小失效?显示所有的记录数

1.问题现象:

这里指定每页显示5条,却把所有的记录数都显示出来了

2.分析:

之前是可以的,然后发现:PageHelper.startPage(pageNum,pageSize) 和执行sql的语句 顺序颠倒了,然后就出错了。

3.验证:

然后,自己就验证一把,在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<Furn> furnList1 = furnService.findByCondition(search);
        System.out.println("在PageHelper.startPage()【之前】查询的结果记录数:"+furnList1.size());
        PageHelper.startPage(pageNum,pageSize);
        List<Furn> 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

说明:
前者查询满足条件的所有记录。并没有进行分页查询
后者查询满足条件的所有记录。同时进行分页查询

4.总结:

在执行PageHelper.startPage(pageNum,pageSize);之前执行的sql并不会进行分页查询,只有之后执行的才会进行分页查询。
注意:sql语句的执行要在PageHelper.startPage(pageNum,pageSize);之后。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值