PageHelper分页失效的几种情况

本文讲述了在Java开发中如何正确使用PageHelper进行分页设置,避免因查询顺序、其他查询操作和后期处理导致分页失效的问题,并提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1、分页的设置写在了查询的后面

// 要设置分页的查询
List<Map<String, Object>> data = aService.listMaps();
// 设置分页
PageHelper.startPage(1, 10);

        这种情况把分页的设置放查询上面就好了

2、设置分页与查询之间有其他查询语句

// 设置分页
PageHelper.startPage(1, 10);
// 其他查询
Integer id = anotherService.getById(1046).getId();
// 要设置分页的查询
List<Map<String, Object>> data = aService.listMaps();

        这种情况下,分页的设置会被用到anotherService的查询上去,导致aService没有分页

        解决方法:把对分页的设置紧贴着查询写

// 其他查询
Integer id = anotherService.getById(1046).getId();
// 设置分页
PageHelper.startPage(1, 10);
// 要设置分页的查询
List<Map<String, Object>> data = aService.listMaps();

3、对查询结果进行增删

// 设置分页
PageHelper.startPage(1, 10);
// 要设置分页的查询
List<Map<String, Object>> data = anotherService.listMaps();
// 对查询结果进行处理
for (int i = data.size() - 1; i >= 0; i--) {
    Map<String, Object> map = data.get(i);
    if (i % 2 == 0) {
        data.remove(map);
    }
}

        这种情况会导致返回的数量和分页条件对不上,建议在有分页查询需求的情况下,把过滤条件放入sql ,而不是对查询到的结果进行过滤

4、其他情况欢迎补充

ps:以上几种情况属于使用不当,而不是PageHelper自身的bug 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值