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

     

  • 相关阅读:
    hadoop机架感知
    Ajax请求结果的缓存
    Blocks语法
    CentOS yum 源的配置与使用
    .NET三层架构开发初步
    Mac技巧合集第一期
    Fine Uploader文件上传组件
    WCF 系列文章
    http权威指南读书笔记
    WCF Service Hosting的线程关联性Mono实现比.NET统一?
  • 原文地址:https://www.cnblogs.com/easyjie/p/14721373.html
Copyright © 2011-2022 走看看