public class PageHelperUtil { public static <T> Page<T> startPage(PageSortInterface pageSort, Supplier<List<T>> supplier) { PageHelper.startPage(pageSort.getPageNum(), pageSort.getPageSize(), pageSort.getSort() + " " + pageSort.getOrder()); List<T> list = supplier.get(); PageInfo<T> pageInfo = new PageInfo<>(list); Page<T> page = new Page<>(); page.setContent(list); page.setTotal(pageInfo.getTotal()); page.setPageNum(pageInfo.getPageNum()); page.setPageSize(pageInfo.getPageSize()); page.setSort(pageSort.getSort()); page.setOrder(pageSort.getOrder()); return page; } }如果是有条件的查询分页,该如何修改?
时间: 2024-03-16 11:45:51 浏览: 126
PageHelper插件实现一对多查询时的分页问题
如果是有条件的查询分页,可以在 `startPage` 方法中增加一个参数,用于传递查询条件,然后在 `supplier` 中根据条件进行查询,例如:
```
public static <T> Page<T> startPage(PageSortInterface pageSort, Supplier<List<T>> supplier, Object condition) {
PageHelper.startPage(pageSort.getPageNum(), pageSort.getPageSize(), pageSort.getSort() + " " + pageSort.getOrder());
List<T> list = supplier.get(condition);
PageInfo<T> pageInfo = new PageInfo<>(list);
Page<T> page = new Page<>();
page.setContent(list);
page.setTotal(pageInfo.getTotal());
page.setPageNum(pageInfo.getPageNum());
page.setPageSize(pageInfo.getPageSize());
page.setSort(pageSort.getSort());
page.setOrder(pageSort.getOrder());
return page;
}
```
在 `supplier` 中接收条件参数,例如:
```
public List<User> getUsersByCondition(Map<String, Object> condition) {
return userDao.getUsersByCondition(condition);
}
```
这样就可以根据条件进行分页查询了。
阅读全文