java 分页工具类使用

1.分页工具类

public class PageUtil<T> implements Serializable {
    private static final long serialVersionUID = -8741766802354222579L;

    private int pageSize; // 每页显示多少条记录

    private int currentPage; //当前第几页数据

    private int totalRecord; // 一共多少条记录

    private int totalPage; // 一共多少页

    private List<T> dataList; //要显示的数据

    public PageUtil(int pageNum, int pageSize, List<T> sourceList) {
        if (sourceList == null || sourceList.isEmpty()) {
            return;
        }

        // 总记录条数
        this.totalRecord = sourceList.size();

        // 每页显示多少条记录
        this.pageSize = pageSize;

        //获取总页数
        this.totalPage = this.totalRecord / this.pageSize;
        if (this.totalRecord % this.pageSize != 0) {
            this.totalPage = this.totalPage + 1;
        }

        // 当前第几页数据
        this.currentPage = this.totalPage < pageNum ? this.totalPage : pageNum;

        // 起始索引
        int fromIndex = this.pageSize * (this.currentPage - 1);

        // 结束索引
        int toIndex = this.pageSize * this.currentPage > this.totalRecord ? this.totalRecord : this.pageSize * this.currentPage;

        this.dataList = sourceList.subList(fromIndex, toIndex);
    }

    public PageUtil() {
    }

    public PageUtil(int pageSize, int currentPage, int totalRecord, int totalPage,
                    List<T> dataList) {
        super();
        this.pageSize = pageSize;
        this.currentPage = currentPage;
        this.totalRecord = totalRecord;
        this.totalPage = totalPage;
        this.dataList = dataList;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getTotalRecord() {
        return totalRecord;
    }

    public void setTotalRecord(int totalRecord) {
        this.totalRecord = totalRecord;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public List<T> getDataList() {
        return dataList;
    }

    public void setDataList(List<T> dataList) {
        this.dataList = dataList;
    }

}




2.实现过程:

pojo:
public class User {
    private int id;
    private String name;
    private String pwd;

}


xml:
    <select id="querUserByName" parameterType="java.lang.String" resultType="User">
        select * from  user where name = #{name}
    </select>
    

mapper:
  List<User> querUserByName(String name);


service:

  PageUtil<User> querUserByName(String name,int pageNum,int pageSize);


serviceImpl:
 public PageUtil<User> querUserByName(String name,int pageNum,int pageSize) {

        List<User> list =userMapper.querUserByName(name);
        PageUtil<User> pages = new  PageUtil<User>(pageNum,pageSize,list);
        return pages;
    }

controller:
    @RequestMapping("/test")
    @ResponseBody
    public PageUtil<User> test(String name,int pageNum,int pageSize){
        PageUtil<User> user = userService.querUserByName(name,pageNum,pageSize);
        return user;
    }

3.返回数据格式:

{
	"pageSize": 5,
	"currentPage": 1,
	"totalRecord": 16,
	"totalPage": 4,
	"dataList": [{
		"id": 1,
		"name": "admin",
		"pwd": "123456"
	}, {
		"id": 2,
		"name": "admin",
		"pwd": "123456"
	}, {
		"id": 3,
		"name": "admin",
		"pwd": "123456"
	}, {
		"id": 4,
		"name": "admin",
		"pwd": "123456"
	}, {
		"id": 6,
		"name": "admin",
		"pwd": "123456"
	}]
}



你可能感兴趣的:(java分页)