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);
很简单操作,后面是操作实现类