zoukankan      html  css  js  c++  java
  • 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 Page<AisShipRealtimeEntity> paginationQuery(Integer pageNum);
    

     三、实现类

    public Page<AisShipRealtimeEntity> paginationQuery(Integer pageNum) {
            SpringDataPageable pageable = new SpringDataPageable();
            Query query = new Query();
            List<Sort.Order> orders = new ArrayList<Sort.Order>();  //排序
            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<AisShipRealtimeEntity> list = mongoTemplate.find(query.with(pageable), AisShipRealtimeEntity.class);
            // 将集合与分页结果封装
            Page<AisShipRealtimeEntity> pagelist = new PageImpl<AisShipRealtimeEntity>(list, pageable, count);
    
            return pagelist;
    
        }
    

      四、控制层

        Page<AisShipRealtimeEntity> list = aisShipRealtimeService.paginationQuery(limit);
        System.out.println(list);
    很简单操作,后面是操作实现类

     

  • 相关阅读:
    Insertion Sort Gym
    Codeforces Round #524 (Div. 2) C. Masha and two friends 思路
    PTA 数据结构——是否完全二叉搜索树
    Crane UVA
    Unidirectional TSP UVA
    排序二叉树的建立,查询与删除
    The Tower of Babylon UVA
    DAG上的动态规划——嵌套矩阵问题
    Paper Folding UVA
    多图片上传插件
  • 原文地址:https://www.cnblogs.com/easyjie/p/14721373.html
Copyright © 2011-2022 走看看