Spring Data MongoDB 分页查询

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       

在上篇文章 Spring Data MongoDB 环境搭建 基础上进行分页查询

定义公用分页参数类,实现 Pageable 接口

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();    }    // 第二页所需要增加的数量    @Override    public int 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;    }}

接口 PersonDao

/** * 分页查询 * @param pageNum  开始页 * @return */public Page<Person> paginationQuery(Integer pageNum);

接口实现 PersonDaoImpl

public Page<Person> paginationQuery(Integer pageNum) {    SpringDataPageable pageable = new SpringDataPageable();    Query query = new Query();    List<Order> orders = new ArrayList<Order>();  //排序    orders.add(new Order(Direction.DESC, "age"));    Sort sort = new Sort(orders);    // 开始页    pageable.setPagenumber(pageNum);    // 每页条数    pageable.setPagesize(10);    // 排序    pageable.setSort(sort);    // 查询出一共的条数    Long count = mongoTemplate.count(query, Person.class);    // 查询    List<Person> list = mongoTemplate.find(query.with(pageable), Person.class);    // 将集合与分页结果封装    Page<Person> pagelist = new PageImpl<Person>(list, pageable, count);    return pagelist;}

测试

/** * 分页查询 */@Testpublic void paginationQuery(){    Page<Person> persons = personDao.paginationQuery(2);    for(Person p : persons){        System.out.println(p.getName());    }}

作者:itmyhome

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/hffygc/article/details/84021867