这期内容当中小编将会给大家带来有关java实现分页的方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
专注于为中小企业提供成都网站建设、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业乌拉特后免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
实现原理很简单,就是建立一个Page类,里面放当前访问的页数(这个是从客户浏览器传到后台的数据,所以你的分页需要用它来定位记录的条目)和每一页显示的记录行数。
然后通过分页计算就可以得出下列数据。(假定你的页数从1开始)
1、总页数 = 总记录数/每页大小,如果0!=总记录数%每页大小,那么总页数再+1
2、当前页数(从浏览器传递的参数中获得)
3、表记录的起始位置=(当前页数-1)*每页大小
4、总记录数(select count(*) from [表名] [where [条件]],从数据库中查询得到)
5、每页大小,可以固定,也可以从页面传过来有了这几个参数之后,就用sql语句查出对应的记录就可以了。
MySQL数据库用limit 表记录的起始位置,每页大小 语句添加到你的查询语句最后面sqlserver数据库用top语句和not in 来做
oracle数据库用rownum来做
具体代码如下:
public class Page { private long totalCount = 0;// 总记录数 private int pageNumber = 1;// 当前页号,默认显示第一页 private int pageSize = 20; // 每页大小,默认每页20条 private int totalPage = 0;// 总页数,默认为0 private int startRow = 0;// 起始记录行号,默认为从表头开始 /** * 分页计算方法,由setTotalCount调用 */ public void pagination() { // 计算总页数 if (this.totalCount % pageSize == 0) this.totalPage = new Long(this.totalCount / pageSize).intValue(); else this.totalPage = new Long(this.totalCount / pageSize).intValue() + 1; // 排除错误页号 if (this.pageNumber < 1) this.pageNumber = 1; if (this.pageNumber > this.totalPage) this.pageNumber = this.totalPage; // 计算起始行号 this.startRow = (this.pageNumber - 1) * this.pageSize; } public long getTotalCount() { return totalCount; } public void setTotalCount(long totalCount) { this.totalCount = totalCount; this.pagination(); } public int getPageNumber() { return pageNumber; } public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getStartRow() { return startRow; } public void setStartRow(int startRow) { this.startRow = startRow; } }
前端采用jsp,通过html和计算得出的数据进行分页展示即可。
上述就是小编为大家分享的java实现分页的方法了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。