欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java后台简单分页实现

程序员文章站 2022-07-10 17:36:52
...

1、写分页的DTO

package pers.weisg.ssm.common.paginated;

import java.io.Serializable;

/** 
 * @Description: 分页的DTO
 * @author WEISANGNG   
 * @date 2017年12月24日   
 */
public class PaginatedDTO implements Serializable {

	private static final long serialVersionUID = -8574882793247791810L;
	
	private long fullListSize = -1L;//总记录数
	private int pageSize = -1;//每页显示记录数
	private int pageNumber = -1;//当前页数
	@SuppressWarnings("unused")
	private int startRowNum = -1;//查询开始行号
	@SuppressWarnings("unused")
	private int endRowNum = -1;//查询结束行号
	private int totalPage;//总页数
	public long getFullListSize() {
		return fullListSize;
	}
	public void setFullListSize(long fullListSize) {
		this.fullListSize = fullListSize;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getPageNumber() {
		return pageNumber;
	}
	public void setPageNumber(int pageNumber) {
		this.pageNumber = pageNumber;
	}
	public int getStartRowNum() {
		return this.pageSize * (this.pageNumber - 1);
	}
	public void setStartRowNum(int startRowNum) {
		this.startRowNum = startRowNum;
	}
	public int getEndRowNum() {
		return this.pageSize * this.pageNumber;
	}
	public void setEndRowNum(int endRowNum) {
		this.endRowNum = endRowNum;
	}
	public int getTotalPage() {
		return totalPage;
	}
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
}

2、分页的简单工具类

package pers.weisg.ssm.common.paginated;

import java.util.HashMap;
import java.util.Map;

/** 
 * @Description:分页工具类
 * @author WEISANGNG   
 * @date 2017年12月24日   
 */
public class PaginatedUtil {

	private static final String PAGE_NUM="pageNum";//当前页数
	private static final String PAGE_SIZE="pageSize";//每页显示的数量
	private static final String TOTAL_COUNT="totalCount";//记录总数
	private static final String TOTAL_PAGE="totalPage";//总页数
	
	/**
	 * @Description:组装分页查询使用的DTO
	 * @param currentPage
	 * @param pageSize
	 * @return PaginatedDTO
	 * @author WEISANGNG
	 * @date 2017年12月24日
	 */
	public static PaginatedDTO getPaginatedDTO(int currentPage,int pageSize){    	
    	PaginatedDTO page =new PaginatedDTO();
		page.setPageSize(pageSize);;
		page.setPageNumber(currentPage);
		return page;
    }
	
	/**
	 * @Description:组装分页显示的MAP
	 * @param paginatedDTO
	 * @return Map<String,Object>
	 * @author WEISANGNG
	 * @date 2017年12月24日
	 */
	public static Map<String,Object> getPaginatedMap(PaginatedDTO paginatedDTO){
    	Map<String,Object> pager =new HashMap<String,Object>();    	
        pager.put(PAGE_NUM, paginatedDTO.getPageNumber());
        pager.put(PAGE_SIZE, paginatedDTO.getPageSize());
        pager.put(TOTAL_COUNT, paginatedDTO.getFullListSize());
        pager.put(TOTAL_PAGE, paginatedDTO.getTotalPage());
		return pager;
    }
}


3、简单分页的使用

1) 在Service先查出总记录数

2)根据当前页数、每页设置的记录大小获取到对应的开始查询记录行号、结束行号

3)选用sql的分页查询查出当前分页条件的记录数