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

     

  • 相关阅读:
    Silverlight实例开发 简单的拖拽效果
    使用DataReader读取记录集 输出全部记录
    MSDTC on server ''ServerName'' is unavailable. 的解决办法
    从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
    基于nginx的tomcat负载均衡和集群(转)
    apache tomcat 6集群负载和session复制(转)
    Fedora 12下安装Google Chrome和RealPlayer 11
    使用ImageMagick为你的网站减重(转)
    Nginx负载均衡如何进行配置
    hessian 演示
  • 原文地址:https://www.cnblogs.com/easyjie/p/14721373.html
Copyright © 2011-2022 走看看