MongoDB分页查询
一、自定义工具类
/** * @ClassName SpringDataPageable * @Author jiege * @Date 2021/4/30 10:18 **/ import java.io.Serializable; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; public class SpringDataPageable implements Serializable, Pageable { private static final long serialVersionUID = 1; // 当前页 private Integer pagenumber = 1; // 当前页面条数 private Integer pagesize = 10; // 排序条件 private Sort sort; // 当前页面 @Override public int getPageNumber() { return getPagenumber(); } // 每一页显示的条数 @Override public int getPageSize() { return getPagesize(); } // 第二页所需要增加的数量 public long getOffset() { return (getPagenumber() - 1) * getPagesize(); } @Override public Sort getSort() { return sort; } public Integer getPagenumber() { return pagenumber; } public void setPagenumber(Integer pagenumber) { this.pagenumber = pagenumber; } public Integer getPagesize() { return pagesize; } public void setPagesize(Integer pagesize) { this.pagesize = pagesize; } public void setSort(Sort sort) { this.sort = sort; } @Override public Pageable first() { // TODO Auto-generated method stub return null; } @Override public boolean hasPrevious() { // TODO Auto-generated method stub return false; } @Override public Pageable next() { // TODO Auto-generated method stub return null; } @Override public Pageable previousOrFirst() { // TODO Auto-generated method stub return null; } }
二、创建service
//分页 public PagepaginationQuery(Integer pageNum);
三、实现类
public PagepaginationQuery(Integer pageNum) { SpringDataPageable pageable = new SpringDataPageable(); Query query = new Query(); List orders = new ArrayList (); //排序 orders.add(new Sort.Order(Sort.Direction.DESC, "createTime")); Sort sort = new Sort(orders); // 开始页 pageable.setPagenumber(pageNum); // 每页条数 pageable.setPagesize(10); // 排序 pageable.setSort(sort); // 查询出一共的条数 Long count = mongoTemplate.count(query, AisShipRealtimeEntity.class); // 查询 List list = mongoTemplate.find(query.with(pageable), AisShipRealtimeEntity.class); // 将集合与分页结果封装 Page pagelist = new PageImpl (list, pageable, count); return pagelist; }
四、控制层
Pagelist = aisShipRealtimeService.paginationQuery(limit);
System.out.println(list);
很简单操作,后面是操作实现类