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的分页查询查出当前分页条件的记录数