oyhk 学习笔记

spring MongoDB 集成(分页),这次的分页功能.是在spring MongoDB 集成crud操作(简单封装)基础上添加的,希望对操作spring mongodb 集成的朋友们有所帮助,那么,直接看代码吧..

首页创建分页类

Pagination.java

Java代码
  1. package com.mkfree.framework.common.page;
  2. import java.util.List;
  3. /**
  4. * 分页数据类
  5. *
  6. * @author hk
  7. *
  8. * 2012-10-26 下午8:23:15
  9. */
  10. public class Pagination{
  11. /**
  12. * 一页数据默认20条
  13. */
  14. private int pageSize = 20;
  15. /**
  16. * 当前页码
  17. */
  18. private int pageNo;
  19. /**
  20. * 上一页
  21. */
  22. private int upPage;
  23. /**
  24. * 下一页
  25. */
  26. private int nextPage;
  27. /**
  28. * 一共有多少条数据
  29. */
  30. private long totalCount;
  31. /**
  32. * 一共有多少页
  33. */
  34. private int totalPage;
  35. /**
  36. * 数据集合
  37. */
  38. private Listdatas;
  39. /**
  40. * 分页的url
  41. */
  42. private String pageUrl;
  43. /**
  44. * 获取第一条记录位置
  45. *
  46. * @return
  47. */
  48. public int getFirstResult() {
  49. return (this.getPageNo() - 1) * this.getPageSize();
  50. }
  51. /**
  52. * 获取最后记录位置
  53. *
  54. * @return
  55. */
  56. public int getLastResult() {
  57. return this.getPageNo() * this.getPageSize();
  58. }
  59. /**
  60. * 计算一共多少页
  61. */
  62. public void setTotalPage() {
  63. this.totalPage = (int) ((this.totalCount % this.pageSize > 0) ? (this.totalCount / this.pageSize + 1)
  64. : this.totalCount / this.pageSize);
  65. }
  66. /**
  67. * 设置 上一页
  68. */
  69. public void setUpPage() {
  70. this.upPage = (this.pageNo > 1) ? this.pageNo - 1 : this.pageNo;
  71. }
  72. /**
  73. * 设置下一页
  74. */
  75. public void setNextPage() {
  76. this.nextPage = (this.pageNo == this.totalPage) ? this.pageNo : this.pageNo + 1;
  77. }
  78. public int getNextPage() {
  79. return nextPage;
  80. }
  81. public int getTotalPage() {
  82. return totalPage;
  83. }
  84. public int getUpPage() {
  85. return upPage;
  86. }
  87. public int getPageSize() {
  88. return pageSize;
  89. }
  90. public void setPageSize(int pageSize) {
  91. this.pageSize = pageSize;
  92. }
  93. public int getPageNo() {
  94. return pageNo;
  95. }
  96. public void setPageNo(int pageNo) {
  97. this.pageNo = pageNo;
  98. }
  99. public long getTotalCount() {
  100. return totalCount;
  101. }
  102. public void setTotalCount(long totalCount2) {
  103. this.totalCount = totalCount2;
  104. }
  105. public ListgetDatas() {
  106. return datas;
  107. }
  108. public void setDatas(Listdatas) {
  109. this.datas = datas;
  110. }
  111. public String getPageUrl() {
  112. return pageUrl;
  113. }
  114. public void setPageUrl(String pageUrl) {
  115. this.pageUrl = pageUrl;
  116. }
  117. public Pagination(int pageNo, int pageSize, long totalCount2) {
  118. this.setPageNo(pageNo);
  119. this.setPageSize(pageSize);
  120. this.setTotalCount(totalCount2);
  121. this.init();
  122. }
  123. /**
  124. * 初始化计算分页
  125. */
  126. private void init() {
  127. this.setTotalPage();// 设置一共页数
  128. this.setUpPage();// 设置上一页
  129. this.setNextPage();// 设置下一页
  130. }
  131. }
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 添加了以下分页的代码

Java代码
  1. package com.mkfree.framework.common.mongodb;
  2. import java.util.List;
  3. import org.springframework.data.mongodb.core.MongoTemplate;
  4. import org.springframework.data.mongodb.core.query.Query;
  5. import org.springframework.data.mongodb.core.query.Update;
  6. import com.mkfree.framework.common.page.Pagination;
  7. /**
  8. * mongodb 基础操作类
  9. *
  10. * @author oyhk
  11. *
  12. * 2013-1-22下午5:28:26
  13. */
  14. public abstract class MongodbBaseDao{
  15. /**
  16. * 通过条件查询,查询分页结果
  17. *
  18. * @param pageNo
  19. * @param pageSize
  20. * @param query
  21. * @return
  22. */
  23. public PaginationgetPage(int pageNo, int pageSize, Query query) {
  24. long totalCount = this.mongoTemplate.count(query, this.getEntityClass());
  25. Paginationpage = new Pagination(pageNo, pageSize, totalCount);
  26. query.skip(page.getFirstResult());// skip相当于从那条记录开始
  27. query.limit(pageSize);// 从skip开始,取多少条记录
  28. Listdatas = this.find(query);
  29. page.setDatas(datas);
  30. return page;
  31. }
  32. //.......其他代码,请下载源代码吧
  33. }

转载于:https://www.cnblogs.com/shhaoran/archive/2013/02/05/2924521.html

spring MongoDB 集成(分页)相关推荐

  1. 6.3 Spring Boot集成mongodb开发

    6.3 Spring Boot集成mongodb开发 本章我们通过SpringBoot集成mongodb,Java,Kotlin开发一个极简社区文章博客系统. 0 mongodb简介 Mongo 的主 ...

  2. 将MongoDB集成到您的Spring项目中

    本文展示了如何通过注释配置将MongoDB集成到您的spring项目中. 我们将从Gradle配置开始. group 'com.gkatzioura.spring' version '1.0-SNAP ...

  3. 将MongoDB集成到您的Spring项目

    本文展示了如何通过注释配置将MongoDB集成到您的spring项目中. 我们将从Gradle配置开始. group 'com.gkatzioura.spring' version '1.0-SNAP ...

  4. Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper

    1. 概述 本文的内容包括如下内容: Spring Boot集成mybatis Spring Boot集成pagehelper分页插件,定义分页的相关类 实现工具类:model转dto,实现数据层和传 ...

  5. spring boot 集成 mongodb 通过id查询问题

    spring boot 集成 mongodb 通过id查询问题 java 连接 mongodb 查询时通过id 查询不到数据,但其他字段是可以的,现在请各位大佬看看会是什么原因 通过id为参数查询 具 ...

  6. Spring Boot集成pagehelper分页插件

    Spring Boot集成pagehelper分页插件 1.在pom.xml中添加pagehelper依赖 2.修改配置文件 3.修改Controller里面的查询方法 4.返回分页信息 1. 修改U ...

  7. Spring+mongodb集群集成(吐血教程) 转自:http://blog.csdn.net/qq_16497617/article/details/52817335

    前一篇文章中介绍了在window系统下部署mongodb集群,按照教程一步步实现的话应该都可以在本机部署成功了,上篇文章末尾也提到了,想集成到SSM框架中去,网上资料基本都是单个mongodb数据库的 ...

  8. SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件

    一.Mybatis框架 1.mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获 ...

  9. Spring Boot 集成MyBatis

    Spring Boot 集成MyBatis Spring Boot 系列 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring ...

  10. 从零搭建开发脚手架 Spring Boot集成Mybatis-plus之一

    文章目录 简介 特性 框架结构 依赖集成 依赖 配置 编码 开始使用 核心功能 代码生成器 添加依赖 编码 编写配置 自定义模板引擎 自定义代码模板 自定义属性注入 字段其他信息查询注入 实战总结 常 ...

最新文章

  1. JSP数据交互(一)
  2. backbone.js学习笔记
  3. aws s3及cloudfront访问问题
  4. redhat6.4执行二进制程序报错:/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory...
  5. python多线程写同一文件_Python多线程写文件实例
  6. 新版谷歌浏览器开启Flash支持
  7. mutilprocess模块的用法
  8. mysql count or null_为什么在对带有条件的行进行计数时,为什么在MySQL中需要“ OR NULL”...
  9. python items和setdefault函数
  10. 电脑死机大全,看完你就是高手了
  11. mock gps android,GitHub - Hilaver/MockGPS: Android application to fake GPS
  12. golang实现家庭收支记账软件项目
  13. flex 3 格式化组件
  14. 为什么油猴脚本会运行两次?
  15. OpenSSL爆出严重bug漏洞 Heartbleed bug CVE-2014-0160
  16. Java单元测试之JUnit 5快速上手
  17. 天津大学计算机专硕_天津大学计算机学院学硕和专硕哪个好?
  18. 电子电气架构——Vector ODX诊断数据库解决方案和操作指南
  19. 霍尼韦尔启动在武汉的新兴市场中国总部;红牛商标所有者​天丝集团扩建在华生产基地 | 美通企业日报...
  20. 基于WebSocket实现网页聊天室

热门文章

  1. Mysql 基础操作:DDL、DML、CRUD 与 常用命令
  2. java 图片线条_JAVA 关于JFrame的问题,我的图片会被线条给覆盖住,怎样让图片在上面呢...
  3. CF724G. Xor-matic Number of the Graph
  4. mybatis逆向工程maven版本idea工具
  5. Consumer clientId=consumer-1, groupId=console-consumer-950] Connection to node -1 could not be
  6. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第2节 maven的安装和仓库种类_05仓库的种类和彼此关系...
  7. BugBugBugBugBugBugBugBugBugBugBugBugBugBugBug
  8. 【CS Round #46 (Div. 1.5) B】Letters Deque
  9. SQL常见错误及处理方法
  10. linux shell 随机字符生成单词