分页工具类

package com.wangzhixuan.utils;

import java.util.List;
import java.util.Map;

/**
* @description:分页实体类 (结合jqery easyui)
* @author:zyp
*/
public class PageInfo {

private final static int PAGESIZE = 10; //默认显示的记录数

private int total; // 总记录
@SuppressWarnings("rawtypes")
private List rows; //显示的记录

private int from;
private int size;
private int nowpage; // 当前页
private int pagesize; // 每页显示的记录数
private Map<String, Object> condition; //查询条件

private String sort = "seq";// 排序字段
private String order = "asc";// asc,desc mybatis Order 关键字

public PageInfo() {
}

//构造方法
public PageInfo(int nowpage, int pagesize) {
//计算当前页
if (nowpage < 0) {
this.nowpage = 1;
} else {
//当前页
this.nowpage = nowpage;
}
//记录每页显示的记录数
if (pagesize < 0) {
this.pagesize = PAGESIZE;
} else {
this.pagesize = pagesize;
}
//计算开始的记录和结束的记录
this.from = (this.nowpage - 1) * this.pagesize;
this.size = this.pagesize;
}

// 构造方法
public PageInfo(int nowpage, int pagesize, String sort, String order) {
// 计算当前页
if (nowpage < 0) {
this.nowpage = 1;
} else {
// 当前页
this.nowpage = nowpage;
}
// 记录每页显示的记录数
if (pagesize < 0) {
this.pagesize = PAGESIZE;
} else {
this.pagesize = pagesize;
}
// 计算开始的记录和结束的记录
this.from = (this.nowpage - 1) * this.pagesize;
this.size = this.pagesize;
// 排序字段,正序还是反序
this.sort = sort;
this.order = order;
}

public int getTotal() {
return total;
}

public void setTotal(int total) {
this.total = total;
}

public List getRows() {
return rows;
}

public void setRows(List rows) {
this.rows = rows;
}

public int getFrom() {
return from;
}

public void setFrom(int from) {
this.from = from;
}

public int getSize() {
return size;
}

public void setSize(int size) {
this.size = size;
}

public int getNowpage() {
return nowpage;
}

public void setNowpage(int nowpage) {
this.nowpage = nowpage;
}

public int getPagesize() {
return pagesize;
}

public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}

public Map<String, Object> getCondition() {
return condition;
}

public void setCondition(Map<String, Object> condition) {
this.condition = condition;
}

public String getSort() {
return sort;
}

public void setSort(String sort) {
this.sort = sort;
}

public String getOrder() {
return order;
}

public void setOrder(String order) {
this.order = order;
}
}

后台实现:

@RequestMapping(value = "/dataGrid", method = RequestMethod.POST)
@ResponseBody
public PageInfo dataGrid(UserVo userVo, Integer page, Integer rows, String sort, String order) {
PageInfo pageInfo = new PageInfo(page, rows);
Map<String, Object> condition = Maps.newHashMap();

if (StringUtils.isNoneBlank(userVo.getName())) {
condition.put("name", userVo.getName());
}
if (userVo.getOrganizationId() != null) {
condition.put("organizationId", userVo.getOrganizationId());
}
if (userVo.getCreatedateStart() != null) {
condition.put("startTime", userVo.getCreatedateStart());
}
if (userVo.getCreatedateEnd() != null) {
condition.put("endTime", userVo.getCreatedateEnd());
}
pageInfo.setCondition(condition);
userService.findDataGrid(pageInfo);
return pageInfo;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB是一种NoSQL数据库,不同于传统关系型数据库,它采用了面向文档的数据存储方式。在MongoDB中没有内置的分页工具类,但我们可以通过编写自定义的分页工具类来满足分页查询的需求。 首先,我们需要一个方法来查询数据库中的文档并进行分页。我们可以使用MongoDB的find()方法来实现查询,并使用skip()和limit()方法来控制分页。skip()方法指定跳过的文档数量,limit()方法指定返回的文档数量。 在自定义分页工具类中,我们可以编写一个方法来执行分页查询。该方法有四个参数:页数、每页显示的数量、查询条件和排序方式。根据传入的参数,我们可以计算出需要跳过的文档数量和需要返回的文档数量,并使用find()、skip()和limit()方法执行查询。 除了基本的分页功能,我们还可以添加一些扩展功能,例如返回总页数和总记录数。我们可以通过计算数据库中的文档数量以及每页显示的数量,来得到总页数和总记录数。然后将这些信息添加到返回结果中,方便前端展示和操作。 需要注意的是,在执行分页查询时,我们需要根据查询条件和排序方式来调整和优化数据的查询和存储结构,以提高查询效率。例如,可以创建索引、使用合适的查询条件和排序方式等。 总而言之,MongoDB虽然没有内置的分页工具类,但我们可以通过编写自定义的分页工具类来实现分页查询。通过查询条件、页数和每页显示的数量,我们可以计算出需要跳过的文档数量和返回的文档数量,并使用MongoDB的find()、skip()和limit()方法来执行分页查询。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值