想用JAVA WEB 实现分页技术。请问应该怎么做

想用JAVA WEB 实现分页技术。请问应该怎么做,第1张

实现原理很简单,就是建立一个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

}

}

用top去读数据库

例如select top 10 * from users只读10指令

分页就用select count(*) from users

用count/10 去确定分页的页数

继续自己弄了...

手写分页太麻烦了。建议你前台用写框架比如ext或者easyui里面分页都是现成的。

比如easyui里面的datagrid传两个参数一个page当前是第几页,rows每页显示多少行,后台那这两个参数拼分页sql就行。他自动就给你实现了。如果要手写的话就用标签什么的实现,或者js里价格全局变量记录这两个参数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11646784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存