如何把List<petyVO> resultlist 转为IPage<List<petyVO>> 返回
时间: 2023-07-09 15:38:26 浏览: 142
要将 `List<petyVO>` 类型的数据转换为 `IPage<List<petyVO>>` 类型,需要先确定总行数 `total`,然后使用 `PageImpl` 类构造一个 `IPage` 对象即可。
下面是一种实现方式:
```java
// 假设每页显示10条记录,当前页为第1页
int pageSize = 10;
int currentPage = 1;
// 假设查询结果为resultList
List<petyVO> resultList = ...
// 计算总行数
int total = resultList.size();
// 计算起始行号和结束行号
int startIndex = (currentPage - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, total);
// 获取当前页数据
List<petyVO> currentPageList = resultList.subList(startIndex, endIndex);
// 构造IPage对象
IPage<List<petyVO>> iPage = new PageImpl<>(Arrays.asList(currentPageList), PageRequest.of(currentPage - 1, pageSize), total);
```
在这里,我们首先计算了总行数 `total`,然后根据每页显示的记录数和当前页号计算出当前页的起始行号和结束行号。接着,使用 `subList` 方法从 `resultList` 中获取当前页的数据。
最后,我们使用 `PageImpl` 类构造一个 `IPage` 对象,将当前页的数据列表、分页信息和总行数传递给构造函数即可。注意,使用 `Arrays.asList` 方法将 `currentPageList` 包装成一个列表,这样才能和 `IPage<List<petyVO>>` 类型匹配。
阅读全文