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