第一步:实现分页工具类

package com.zqwm.fly.types;

import lombok.Data;
import java.util.List;

/**
 * 分页
 * @author zhengcy
 *
 * @param<T>
 */
@Data
public class PageModel<T>
{
    /**结果集*/
    private List<T> datas;
    /**查询记录数**/
    private int rowCount;
    /**每页多少条数据**/
    private int pageSize=20;
    /**第几页**/
    private int pageNo=1;
    /**跳过几条数**/
    private int skip=0;
    /**
     * 总页数
     * @return
     */
    public int TotalPages() {return(rowCount+pageSize-1)/pageSize;}
}

第二步:实现分页

//分页 排序 多条件过滤
public PageModel<T> findByPage(PageModel<T> page,Integer pageIndex, Integer pageSize, Map<String, Object> params, String cellection)
{
    //创建排序模板Sort
    Sort sort = new Sort(Sort.Direction.DESC, "id");

    //创建分页模板Pageable
    Pageable pageable = new PageRequest((pageIndex-1)*pageSize, pageSize, sort);

    //创建查询条件对象
    Query query = new Query();
    if ((params != null) && (!(params.isEmpty())))
    {
        for (String key : params.keySet()) {
            query.addCriteria(new Criteria(key).is(params.get(key)));
        }
    }

    //mongoTemplate.count计算总数
    long total = mongoTemplate.count(query,getClz(),cellection);
    page.setRowCount((int)total);
    // mongoTemplate.find 查询结果集
    List<T> items = (List<T>) mongoTemplate.find(query.with(pageable),getClz(),cellection);

    page.setPageNo(pageIndex);
    page.setPageSize(pageSize);
    page.setDatas(items);

    return page;
}


没有登录不能评论