Spring boot 分页方式
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.util.StringUtils; // 获取排序方式 public static Sort getSort(String sortType, String sortColumn) throws IllegalArgumentException { String defaultColumn = "id"; Sort.Direction direction; if(!StringUtils.hasText(sortType)) { direction = Sort.Direction.DESC; } else{ direction = Sort.Direction.fromString(sortType); } return new Sort(direction, StringUtils.hasText(sortColumn) ? sortColumn : defaultColumn); } // 获取分页 public static Pageable getPageable(Integer pageIndex, Integer pageSize, Sort sort) throws IllegalArgumentException { return PageRequest.of((pageIndex == null || pageIndex < 0)? 0: pageIndex, (pageSize == null || pageSize < 0)?10:pageSize, sort); }
public Page<FeedbackDO> getFeedbackHistory() { Sort sort = PageUtil.getSort("isAsc", "id"); int pageNum = 10; int pageSize = 10; Pageable pageable = PageUtil.getPageable(pageNum - 1, pageSize,sort); // 有查询条件 Specification<FeedbackDO> dictSpecification = (Specification<FeedbackDO>) (root, criteriaQuery, criteriaBuilder) -> PredicateUtil.handleQueryCondition(criteriaBuilder, root, null); Page<FeedbackDO> all = feedbackRepository.findAll(dictSpecification, pageable); // 没有查询条件 Page<FeedbackDO> all2 = feedbackRepository.findAll(pageable); return all;
// 需要对查询结果处理时
List<FeedbackVO> list = new ArrayList<>();
for (FeedbackDO feedbackDO:all){
FeedbackVO vo = new FeedbackVO();
BeanHelperUtil.copyNotNullProperties(feedbackDO,vo);
list.add(vo);
}
return new PageImpl<>(list,pageable,all.getTotalElements());
}
1. 以上时Jpa findAll分页
2. 以下PageListHolder分页;
import org.springframework.beans.support.PagedListHolder; PagedListHolder<AssignmentVO> pagedListHolder = new PagedListHolder<>(resultList); // resultList 是需要返回的结果集(总的) pagedListHolder.setPageSize(queryDTO.getPageSize()); // 设置页面显示数 pagedListHolder.setPage(queryDTO.getPageNum() - 1); // 设置页面
getNrOfElements 是
pageList 是当前内容
nrOfElements 是数据总数
pageCount 是总页数
page 是当前页
pageSize 是当前每页展示数量

浙公网安备 33010602011771号