new PageInfo(list).getTotal()
时间: 2023-11-28 08:04:05 浏览: 32
这段代码是使用 MyBatis 分页插件进行分页查询时,获取查询结果总数的方式。`new PageInfo(list)` 是将查询结果集合 `list` 封装成一个 `PageInfo` 对象,然后调用 `getTotal()` 方法获取查询结果的总数。`PageInfo` 是 MyBatis 分页插件提供的一个分页信息类,除了总数,还可以获取当前页码、每页显示数量、总页数等分页信息。
相关问题
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; } }如果是有条件的查询分页,该如何修改?
如果是有条件的查询分页,可以在 `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);
}
```
这样就可以根据条件进行分页查询了。
PageHelper.startPage(page, limit); //查询提醒数据 List<Map> results = kssJxMjkhTxService.selectJxMjkhTxData2(vo, jsbh, mjbh, mjxm); PageInfo<Map> pageInfo = new PageInfo<>(results); if (CollectionUtils.isNotEmpty(results)) { return DataGridResult.build(0, "查询成功", (long) pageInfo.getTotal(), pageInfo.getList()); 为什么我这样分页不起作用
可能是因为你没有对查询语句进行分页处理。`PageHelper.startPage(page, limit)` 只是对后续查询的语句进行分页处理,但它并不能直接作用于你已经执行的查询语句。请尝试将查询语句改为:
```
PageHelper.startPage(page, limit);
List<Map> results = kssJxMjkhTxService.selectJxMjkhTxData2(vo, jsbh, mjbh, mjxm);
PageInfo<Map> pageInfo = new PageInfo<>(results);
if (CollectionUtils.isNotEmpty(results)) {
return DataGridResult.build(0, "查询成功", pageInfo.getTotal(), results);
}
```
这样,你的查询语句就会被 PageHelper 进行分页处理,从而实现分页功能。