oyhk 学习笔记
spring MongoDB 集成(分页),这次的分页功能.是在spring MongoDB 集成crud操作(简单封装)基础上添加的,希望对操作spring mongodb 集成的朋友们有所帮助,那么,直接看代码吧..
首页创建分页类
Pagination.java
package com.mkfree.framework.common.page; import java.util.List; /** * 分页数据类 * * @author hk * * 2012-10-26 下午8:23:15 */ public class Pagination{ /** * 一页数据默认20条 */ private int pageSize = 20; /** * 当前页码 */ private int pageNo; /** * 上一页 */ private int upPage; /** * 下一页 */ private int nextPage; /** * 一共有多少条数据 */ private long totalCount; /** * 一共有多少页 */ private int totalPage; /** * 数据集合 */ private Listdatas; /** * 分页的url */ private String pageUrl; /** * 获取第一条记录位置 * * @return */ public int getFirstResult() { return (this.getPageNo() - 1) * this.getPageSize(); } /** * 获取最后记录位置 * * @return */ public int getLastResult() { return this.getPageNo() * this.getPageSize(); } /** * 计算一共多少页 */ public void setTotalPage() { this.totalPage = (int) ((this.totalCount % this.pageSize > 0) ? (this.totalCount / this.pageSize + 1) : this.totalCount / this.pageSize); } /** * 设置 上一页 */ public void setUpPage() { this.upPage = (this.pageNo > 1) ? this.pageNo - 1 : this.pageNo; } /** * 设置下一页 */ public void setNextPage() { this.nextPage = (this.pageNo == this.totalPage) ? this.pageNo : this.pageNo + 1; } public int getNextPage() { return nextPage; } public int getTotalPage() { return totalPage; } public int getUpPage() { return upPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public long getTotalCount() { return totalCount; } public void setTotalCount(long totalCount2) { this.totalCount = totalCount2; } public ListgetDatas() { return datas; } public void setDatas(Listdatas) { this.datas = datas; } public String getPageUrl() { return pageUrl; } public void setPageUrl(String pageUrl) { this.pageUrl = pageUrl; } public Pagination(int pageNo, int pageSize, long totalCount2) { this.setPageNo(pageNo); this.setPageSize(pageSize); this.setTotalCount(totalCount2); this.init(); } /** * 初始化计算分页 */ private void init() { this.setTotalPage();// 设置一共页数 this.setUpPage();// 设置上一页 this.setNextPage();// 设置下一页 } }
然后,我们看回
MongodbBaseDao.java 添加了以下分页的代码
package com.mkfree.framework.common.mongodb; import java.util.List; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import com.mkfree.framework.common.page.Pagination; /** * mongodb 基础操作类 * * @author oyhk * * 2013-1-22下午5:28:26 */ public abstract class MongodbBaseDao{ /** * 通过条件查询,查询分页结果 * * @param pageNo * @param pageSize * @param query * @return */ public PaginationgetPage(int pageNo, int pageSize, Query query) { long totalCount = this.mongoTemplate.count(query, this.getEntityClass()); Paginationpage = new Pagination(pageNo, pageSize, totalCount); query.skip(page.getFirstResult());// skip相当于从那条记录开始 query.limit(pageSize);// 从skip开始,取多少条记录 Listdatas = this.find(query); page.setDatas(datas); return page; } //.......其他代码,请下载源代码吧 }
源代码下载:http://blog.mkfree.com/posts/47
相关推荐
skip随着数据量上去,分页性能极具下降,不推荐。这里使用spring-data-mongo实现的分页,并且实现了mongodb自增id(监听器方式)、也集成了轻量级插件MongodbPlugin,有需要的可以下载看看哦~
mongodb版本号3.2,需手动开启http服务,启动时使用命令 ./mongod --httpinterface 新增 修改 删除 查询 排序 分页 可查看: https://blog.csdn.net/m0_37132783/article/details/96992439
ElasticSearch(`基本操作和高级查询`)、Async(`异步任务`)、集成Dubbo(`采用官方的starter`)、MongoDB(`文档数据库`)、neo4j(`图数据库`)、docker(`容器化`)、`JPA多数据源`、`Mybatis多数据源`、`代码生成器`、Gray...
spring-dubbo-service微服务一,服务模块1,服务器配置:servlet,侦听器,拦截器,过滤器,aop,定时任务mybatis配置集成,多数据源;级联查询一对一对一对多注解配置及xml配置方式;分页处理:传递Page参数或继承...
服务端50%以上的功能只需要写SQL或者 mongodb原始执行脚本就能完成开发,另外30%也在不停的完善公共组件,比如文件上传,下载,导出,预览,分页等等通过一二行代码也能完成开发,剩下的20%也能依赖于动态编译技术...
ElasticSearch(基本操作和高级查询)、Async(异步任务)、集成Dubbo(采用官方的starter)、MongoDB(文档数据库)、neo4j(图数据库)、docker(容器化)、JPA多数据源、Mybatis多数据源、代码生成器、GrayLog(日志收集)、...
它是居于Spring容器之上,封装了DAO(含Hibernate和MongoDB)操作、多模块统一管理、统一配置管理、统一日志管理等优雅的工程管理开发模型,并提供大量工具包、Json操作、分页辅助工具。 开发工具在软件开发生命...
java简易版开心农场源码 使用文档(完善进度70%,可以预览) QQ交流群:531812227 ...普通spring项目集成 <!-- sqltoy --> <groupId>com.sagframe</groupId> <artifactId>sagacity-sqltoy</
“ Rocket-API”基于spring boot的API敏捷开发框架,服务端50%以上的功能只需要写SQL或mongodb原始执行脚本即可完成开发,另外30%同时不停的完善公共组件,此类文件上传,下载,生成,预览,分页等等通过一二行...
│ 第127节:MongoDB和Spring.avi │ 第128节:应用建议及最佳实践.avi │ 第129节:MongoDB结合应用开发一.avi │ 第130节:MongoDB结合应用开发二.avi │ 第131节:应用MongoDB后体系结构.avi │ 第132节:...