pagehelper 一次获取多页
时间: 2024-01-23 21:15:20 浏览: 64
PageHelper是一个用于实现分页功能的开源插件,它可以帮助我们方便地进行数据库查询结果的分页处理。默认情况下,PageHelper只会查询并返回第一页的数据。如果我们想要一次获取多页的数据,可以通过设置PageHelper的offsetPage参数来实现。
以下是一种使用PageHelper一次获取多页数据的方法:
```java
// 创建一个PageResult对象出来
PageResult<AdvertInfo> pageResult = new PageResult<>();
// 开启分页,pageNum代表当前页数,pageSize代表每页总数
PageHelper.offsetPage(pageNum, pageSize);
// 查询数据库的语句,pageHelper在这里做一次拦截器操作
List<AdvertInfo> advertList = advertMapper.getAdvertList(advertInfoParam);
// 使用PageInfo包装结果
PageInfo<AdvertInfo> pageInfo = new PageInfo<>(advertList);
// 获取总页数
int totalPage = pageInfo.getPages();
// 判断是否还有下一页数据
if (pageNum < totalPage) {
// 继续获取下一页数据
PageHelper.offsetPage(pageNum + 1, pageSize);
List<AdvertInfo> nextAdvertList = advertMapper.getAdvertList(advertInfoParam);
advertList.addAll(nextAdvertList);
}
// 将结果设置到PageResult对象中
pageResult.setList(advertList);
pageResult.setTotal(pageInfo.getTotal());
// 输出结果
System.out.println(pageResult);
```
这段代码首先通过`PageHelper.offsetPage(pageNum, pageSize)`设置了分页的起始位置和每页的数量。然后执行查询语句`advertMapper.getAdvertList(advertInfoParam)`获取第一页的数据。接着使用`PageInfo`包装查询结果,并通过`pageInfo.getPages()`获取总页数。如果当前页小于总页数,就继续获取下一页的数据,并将其添加到结果集中。最后将结果设置到`PageResult`对象中,并输出结果。
阅读全文