mongodb分页查询
来源:互联网 发布:机器人与人工智能大会 编辑:程序博客网 时间:2024/06/07 23:06
1.分页实现类
SpringDataPageable.java
package com.ceair.dao;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 = 1000;// 排序条件private Sort sort;// 当前页面@Overridepublic int getPageNumber() {return getPagenumber();}// 每一页显示的条数@Overridepublic int getPageSize() {return getPagesize();}// 第二页所需要增加的数量@Overridepublic int getOffset() {return (getPagenumber() - 1) * getPagesize();}@Overridepublic 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;}@Overridepublic Pageable first() {return null;}@Overridepublic boolean hasPrevious() {return false;}@Overridepublic Pageable next() {return null;}@Overridepublic Pageable previousOrFirst() {return null;}}
PageDao.java
package com.ceair.dao;import org.springframework.data.domain.Page;import org.springframework.data.domain.Sort;import org.springframework.data.mongodb.core.query.Query;/** * Title: 分页 <br/> * Description: <br/> * * @author: wangzs <br/> * @date: 2017年5月10日 */public interface PageDao<E> {/** * @param pageNum * 开始页 * @param pagesize * 每页大小 * @param query * 查询条件 * @param sort * 排序条件 * @param collections * 集合名字 * @return */public Page<E> paginationQuery(Integer pageNum, Integer pagesize, Query query, Sort sort, Class collections);}
PageDaoImpl.java
package com.ceair.dao;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageImpl;import org.springframework.data.domain.Sort;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Query;/** * Title: 分页 impl <br/> * Description: <br/> * * @author: wangzs <br/> * @date: 2017年5月10日 */public class PageDaoImpl<E> implements PageDao<E> {@Autowiredprivate MongoTemplate mongoTemplate;/** * @param pageNum * 开始页 * @param pagesize * 每页大小 * @param query * 查询条件 * @param sort * 排序条件 * @param collections * 集合名字 * @return */@Overridepublic Page<E> paginationQuery(Integer pageNum, Integer pagesize, Query query, Sort sort, Class collections) {SpringDataPageable pageable = new SpringDataPageable();// 开始页pageable.setPagenumber(pageNum);// 每页条数pageable.setPagesize(pagesize);// 排序pageable.setSort(sort);// 查询出一共的条数Long count = mongoTemplate.count(query, collections);// 查询List<E> list = mongoTemplate.find(query.with(pageable), collections);// 将集合与分页结果封装Page<E> pagelist = new PageImpl<E>(list, pageable, count);return pagelist;}}
2.测试实体bean
IndividualTemp.java
package com.ceair.bean;import java.util.Date;public class IndividualTemp {public IndividualTemp() {super();}public IndividualTemp(String partyId, boolean etermToTsdata, boolean tsdataToCmp, Date lastUpdateTime) {super();this.partyId = partyId;this.etermToTsdata = etermToTsdata;this.tsdataToCmp = tsdataToCmp;this.lastUpdateTime = lastUpdateTime;}private String partyId;private boolean etermToTsdata;// 根据黑屏刷新tsdata数据标识private boolean tsdataToCmp;// 根据tsdata刷新cmp行程标识private Date lastUpdateTime;public String getPartyId() {return partyId;}public void setPartyId(String partyId) {this.partyId = partyId;}public boolean isEtermToTsdata() {return etermToTsdata;}public void setEtermToTsdata(boolean etermToTsdata) {this.etermToTsdata = etermToTsdata;}public boolean isTsdataToCmp() {return tsdataToCmp;}public void setTsdataToCmp(boolean tsdataToCmp) {this.tsdataToCmp = tsdataToCmp;}public Date getLastUpdateTime() {return lastUpdateTime;}public void setLastUpdateTime(Date lastUpdateTime) {this.lastUpdateTime = lastUpdateTime;}@Overridepublic String toString() {return "IndividualTemp [partyId=" + partyId + ", etermToTsdata=" + etermToTsdata + ", tsdataToCmp=" + tsdataToCmp + ", lastUpdateTime="+ lastUpdateTime + "]";}}
3.测试类
IndividualTempPageTest.java
package com.ceair.data;import java.util.ArrayList;import java.util.List;import org.junit.Test;import org.junit.runner.RunWith;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.data.domain.Sort;import org.springframework.data.domain.Sort.Direction;import org.springframework.data.domain.Sort.Order;import org.springframework.data.mongodb.core.query.Query;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.ceair.bean.Individual;import com.ceair.bean.IndividualTemp;import com.ceair.dao.PageDao;/** * Title: IndividualTemp分页测试 <br/> * Description: <br/> * * @author: wangzs <br/> * @date: 2017年5月10日 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { //"classpath*:beans/applicationContext-*.xml", //"classpath*:spring/applicationContext-*.xml"//})public class IndividualTempPageTest {private static final Logger logger = LoggerFactory.getLogger(IndividualTempPageTest.class);@Autowiredprivate PageDao<IndividualTemp> pageDao;@Testpublic void testCopyIndividual() {Query query = new Query();List<Order> orders = new ArrayList<Order>(); // 排序orders.add(new Order(Direction.ASC, "partyId"));Sort sort = new Sort(orders);for (int i = 1; i < 1500; i++) {Page<IndividualTemp> pages = pageDao.paginationQuery(i, 10, query, sort, IndividualTemp.class);for (IndividualTemp temp : pages) {System.out.println(temp);}System.out.println("page=" + i);logger.info("page=" + i);}}}
1 0
- mongodb查询分页优化
- MongoDB 分页查询
- mongodb查询分页优化
- mongodb 分页查询
- MongoDB之分页查询
- mongodb的分页查询
- MongoDB分页查询语句
- mongodb分页查询
- mongodb排序&分页查询
- mongodb查询分页优化(二)
- mongodb查询分页优化(二)
- MongoDB数据查询,分页,排序
- node.js mongodb分页查询
- Spring Data MongoDB 分页查询
- MongoDB分页查询的方法及性能
- MongoDB 性能优化之分页查询
- mongodb在java中的分页查询
- MongoDb的分页查询,游标,存储过程
- c#读书笔记三:类型转换
- android studio 2.3 问题记录
- javascript中对象的属性的特性
- 初识Redis
- Swift项目集成极光推送SDK
- mongodb分页查询
- matlab拼接字符串的方法
- 笔记本护眼设置——全面攻略(保护视力)(笔者倾情奉献+强烈推荐)
- Tensorflow batch_normalization
- Zookeeper系列(一)背景介绍及基本概念
- 编译gdb和gdbserver使用wget上传到路由执行调试
- 使用Dom4j解析XML
- 初试three.js--绘制星空
- maven 工程一些错误的解决办法