怎么进行分页数据的查询,如何判断是否有下一页?
为什么用到分页查询?
1、用户体验、页面显示效果:
在开发过程当中,我们经常需要从数据库中查询数据,然后将数据在客户端显示,如果数据量少的话,可以在一个页面上显示完成,但是如果查询的数据是几百条、上千条数据的时候,全部在一个页面上显示出来,非常影响页面的美观性和用户的体验。所以这就用到分页技术。
2、服务器资源、性能:
当数据量过大时,可能会导致各种各样的问题发生,例如:服务器资源被耗尽,因数据传输量过大而使处理超时,等等。最终都会导致查询无法完成当数据量过大时,可能会导致各种各样的问题发生,例如:服务器资源被耗尽,因数据传输量过大而使处理超时,等等。最终都会导致查询无法完成
打一个比方,有很多很多人要过河,而只有一条船摆渡。若让所有人都上船,肯定会导致沉船(资源耗尽);若换一条超大的船,除了换船要很高的成本外,上船下船也要耗费很长时间。
所以最好的解决方法是,根据船的容量,每次只上一部分人。等这一船人过河以后,再摆渡下一批人。
2.知识剖析
(一)limit用法
select * from tablename limit #{start},#{size}
start是从哪里开始显示
size是每页显示多少条记录
(二)总记录数totalCount
select count(1) from tablename
(三)总页数
totalPage=totalCount/pageSize
需要用到的参数
private int currPage;//当前页数 private int pageSize;//每页显示的记录数 private int totalCount;//总记录数 private int totalPage;//总页数 private List<StudentCustom> lists;//每页的显示的数据
具体实现
首先建一个pageBean的类
public class PageBean<T> { private int currPage;//当前页数 private int pageSize;//每页显示的记录数 private int totalCount;//总记录数 private int totalPage;//总页数 private List<StudentCustom> lists;//每页的显示的数据 public int getCurrPage() { return currPage; } public void setCurrPage(int currPage) { this.currPage = currPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } public int getTotalPage() { return totalPage; }