`
381895649
  • 浏览: 230369 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spring MongoDB 集成(分页)

 
阅读更多

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

 

本文章来自:http://blog.mkfree.com/posts/47

0
3
分享到:
评论
1 楼 welcomejiong 2013-01-26  
不错不错!学习了

相关推荐

    spring-data集成mongodb大数据量分页+自增id实现+MongodbPlugin集成

    skip随着数据量上去,分页性能极具下降,不推荐。这里使用spring-data-mongo实现的分页,并且实现了mongodb自增id(监听器方式)、也集成了轻量级插件MongodbPlugin,有需要的可以下载看看哦~

    spring mongodb 中文文档

    MongoDB 是一个高性能、开源、无模式的分布式文档数据库,而Spring Data MongoDB 是Spring 框架的一部分,它为MongoDB 提供了强大的支持,简化了与MongoDB 的集成和操作。这篇文档将深入探讨Spring Data MongoDB 的...

    Spring集成Mongodb配置含jar包

    6. **分页和排序**: Spring Data MongoDB支持分页查询,可以通过`Pageable`接口实现。同时,我们还可以在查询时添加排序规则,利用`Sort`对象指定排序依据和方向。 7. **聚合框架**: Spring Data MongoDB还提供了对...

    Spring Data MongoDB中文文档

    - 这些特性极大地丰富了与 MongoDB 交互的方式,使得 **Spring Data MongoDB** 成为了与 MongoDB 集成的理想选择。 总之,**Spring Data MongoDB** 是一个强大的工具,它不仅简化了与 MongoDB 数据库的交互,还提供...

    spring mvc 集成mongoDB项目 例子

    在本项目中,我们将探讨如何将Spring MVC框架与MongoDB数据库进行集成,创建一个实际的应用实例。MongoDB是一个流行的开源、非关系型数据库系统,以其灵活性、可扩展性和高性能著称。而Spring MVC是Java开发Web应用...

    springMVC集成mongoDB的demo

    将SpringMVC与MongoDB集成,可以利用Spring框架的管理能力和MongoDB的灵活性。以下是集成的关键步骤: 1. **添加依赖**:在项目中引入Spring Data MongoDB和Spring MVC的相关库。通常,这可以通过在Maven或Gradle的...

    Spring3+Spring-data-mongodb1.5.6示例

    4. **Spring Data MongoDB**: 这是Spring Data的一个模块,专门用于与MongoDB集成。它提供了MongoTemplate和MongoOperations接口,用于执行数据库操作,还提供了一套Repository接口,允许开发者以声明式的方式定义...

    Spring-data + MongoDb源码

    Spring Data为MongoDB提供了一个强大的抽象层,使得开发者可以轻松地在Java应用中集成和操作MongoDB。 Spring Data MongoDB的核心概念是Repository抽象,它允许开发者定义自定义的查询方法,而无需编写SQL或MongoDB...

    spring-data-mongodb1.2.0

    Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单而有效的方式来集成Spring应用程序与MongoDB数据库。这个"spring-data-mongodb1.2.0"版本是针对Spring Data MongoDB的1.2.0.RELEASE更新,它包含...

    java spring+mongodb

    Spring框架提供了多种方式来集成MongoDB,其中最常用的是Spring Data MongoDB。Spring Data MongoDB项目使得与MongoDB数据库的交互变得简单,它提供了ORM(对象关系映射)功能,允许开发者使用Java对象直接操作...

    spring-data-mongodb api

    Spring Data MongoDB可以与MongoDB的分片和复制集集成,以实现水平扩展和高可用性。 10. **版本控制与审计**: Spring Data MongoDB可以通过`@Version`注解实现乐观锁,以处理并发更新。同时,它还支持日志记录和...

    spring-data-mongodb-parent-reference

    扩展包括为Spring MVC的域类提供Web绑定、Web分页以及仓库填充器等。 最后,文档的格式和内容表明了它是为了给Java开发者提供一份详尽的参考指南,以便他们可以高效地使用Spring Data MongoDB框架来操作MongoDB...

    spring-data-mongodb-reference 1.5.4

    Spring Data MongoDB 1.5.4 为开发者提供了丰富的功能,简化了 MongoDB 数据库的集成工作。它不仅提供了对 CRUD 操作的支持,还支持复杂的查询和聚合操作,同时还集成了 Spring 生态系统中的其他组件。这使得开发者...

    Spring整合MongoDB基于Maven

    在现代Java开发中,Spring框架与MongoDB数据库的集成是常见的选择,尤其是在处理非关系型数据时。MongoDB是一个高性能、无模式的文档型数据库,而Spring提供了强大的框架支持,使得开发者可以方便地在应用中接入...

    springBoot集成MongoDB

    在本文中,我们将深入探讨如何将Spring Boot框架与MongoDB数据库进行集成,以便在Java应用程序中利用MongoDB的强大功能。MongoDB是一个流行的NoSQL数据库,它以文档存储为数据模型,适合处理大量的非结构化和半结构...

    spring-data-mongodb:所有Spring Mongodb项目

    Spring Data MongoDB使得在Spring应用程序中集成MongoDB变得更加便捷。 在Spring Data MongoDB中,主要涉及以下几个关键概念: 1. **MongoTemplate**: 这是Spring Data MongoDB的核心组件,它提供了一种编程式的...

    spring-boot-mongodb项目下载

    在集成 Spring Boot 和 MongoDB 的过程中,我们可以利用 Spring Data MongoDB 模块来实现。Spring Data MongoDB 提供了与 MongoDB 交互的一系列抽象层,使得开发者能够更方便地操作数据库,而无需深入学习 MongoDB ...

    mongodb-spring 整合包

    本整合包正是针对这一需求而准备的,它包含了实现MongoDB与Spring集成所需的所有组件。 首先,我们需要了解MongoDB-Spring的数据访问层(Data Access Layer)。Spring Data MongoDB 提供了一种简单的方式来操作...

    最新spring-data-mongo

    将Spring Data MongoDB集成到Java应用中,通常需要在`application.properties`或`yaml`配置文件中设置MongoDB的相关属性,如连接URL、用户名、密码等。然后,通过Spring Boot的自动配置功能,可以轻松地创建和管理...

Global site tag (gtag.js) - Google Analytics