想用JAVA WEB 实现分页技术,应该怎么做?
1个回答
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
关注
展开全部
实现原理很简单,就是建立一个Page类,里面放当前访问的页数(这个是从客户浏览器传到后台的数据,所以你的分页需要用它来定位记录的条目)和每一页显示的记录行数。然后通过分页计算就可以得出下列数据。\x0d\x0a(假定你的页数从1开始)\x0d\x0a1、总页数 = 总记录数/每页大小,如果0!=总记录数%每页大小,那么总页数再+1\x0d\x0a2、当前页数(从浏览器传递的参数中获得)\x0d\x0a3、表记录的起始位置=(当前页数-1)*每页大小\x0d\x0a4、总记录数(select count(*) from [表名] [where [条件]],从数据库中查询得到)\x0d\x0a5、每页大小,可以固定,也可以从页面传过来\x0d\x0a\x0d\x0a有了这几个参数之后,就用sql语句查出对应的记录就可以了。\x0d\x0amysql数据库用limit 表记录的起始位置,每页大小 语句添加到你的查询语句最后面\x0d\x0asqlserver数据库用top语句和not in 来做\x0d\x0aoracle数据库用rownum来做\x0d\x0a\x0d\x0a再给你一段分页对象代码,你自己先读一下\x0d\x0a\x0d\x0apublic class Page {\x0d\x0a\x0d\x0aprivate long totalCount = 0;// 总记录数\x0d\x0aprivate int pageNumber = 1;// 当前页号,默认显示第一页\x0d\x0aprivate int pageSize = 20; // 每页大小,默认每页20条\x0d\x0aprivate int totalPage = 0;// 总页数,默认为0\x0d\x0aprivate int startRow = 0;// 起始记录行号,默认为从表头开始\x0d\x0a\x0d\x0a/**\x0d\x0a* 分页计算方法,由setTotalCount调用\x0d\x0a*/\x0d\x0apublic void pagination() {\x0d\x0a// 计算总页数\x0d\x0aif (this.totalCount % pageSize == 0)\x0d\x0athis.totalPage = new Long(this.totalCount / pageSize).intValue();\x0d\x0aelse\x0d\x0athis.totalPage = new Long(this.totalCount / pageSize).intValue() + 1;\x0d\x0a// 排除错误页号\x0d\x0aif (this.pageNumber < 1)\x0d\x0athis.pageNumber = 1;\x0d\x0aif (this.pageNumber > this.totalPage)\x0d\x0athis.pageNumber = this.totalPage;\x0d\x0a// 计算起始行号\x0d\x0athis.startRow = (this.pageNumber - 1) * this.pageSize;\x0d\x0a}\x0d\x0a\x0d\x0apublic long getTotalCount() {\x0d\x0areturn totalCount;\x0d\x0a}\x0d\x0a\x0d\x0apublic void setTotalCount(long totalCount) {\x0d\x0athis.totalCount = totalCount;\x0d\x0athis.pagination();\x0d\x0a}\x0d\x0a\x0d\x0apublic int getPageNumber() {\x0d\x0areturn pageNumber;\x0d\x0a}\x0d\x0a\x0d\x0apublic void setPageNumber(int pageNumber) {\x0d\x0athis.pageNumber = pageNumber;\x0d\x0a}\x0d\x0a\x0d\x0apublic int getPageSize() {\x0d\x0areturn pageSize;\x0d\x0a}\x0d\x0a\x0d\x0apublic void setPageSize(int pageSize) {\x0d\x0athis.pageSize = pageSize;\x0d\x0a}\x0d\x0a\x0d\x0apublic int getTotalPage() {\x0d\x0areturn totalPage;\x0d\x0a}\x0d\x0a\x0d\x0apublic void setTotalPage(int totalPage) {\x0d\x0athis.totalPage = totalPage;\x0d\x0a}\x0d\x0a\x0d\x0apublic int getStartRow() {\x0d\x0areturn startRow;\x0d\x0a}\x0d\x0a\x0d\x0apublic void setStartRow(int startRow) {\x0d\x0athis.startRow = startRow;\x0d\x0a}\x0d\x0a\x0d\x0a}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询