java中的分页_Java中的分页技术

分页关键的是sql语句要理解怎么写就完成一半了

案例:现在对一个新闻首页的新闻进行分页

NewsDao dao=newNewsDao();对新闻操做的dao类

intpagesize=10;每页面的数据数据量

intlastpage=1;上一页初始为1

intnextpage=1;下一页初始为1

intcurrentpage=1;当前页初始为1

inttotalrows=dao.count();获取总的新闻的记录条数

//计算总的页面数

inttotalpage=totalrows%pagesize==0?

totalrows/pagesize:(totalrows/pagesize+1);

三元运算符当取出的记录数可以整除pagesize的话就去商为总页数,如果有余数则总页数还要加1

//获取当前页面的值

if(request.getParameter("page")!=null)

{

currentpage=Integer.parseInt(request.getParameter("page"));

}

如果为地址栏中url中为指定page参数,则为默认为1,如果存在page参数则赋给当前的页数currentpage

判断上一页的页码,如果当前页为1,则上一页为1,否则为当前页减1

lastpage=currentpage==1?1:(currentpage-1);

判断下一页的页码,如果当前页为总页码的大小,则下一页也为最后一页,否则为当前页加1

nextpage=currentpage==totalpage?totalpage:(currentpage+1);

通过新闻的dao类获取此页的新闻数据,参数为pagesize页面的大小,参数currentpage为当前的页码

ArrayList pagelist=dao.queryByPage(pagesize,currentpage);

数据库查询语句(这里使用的是SqlServer2005)

String sqlString="select top "+size+" newsid,title,publishtime from news where newsid not in (select top "+((page-1)*size)+" newsid from news order by newsid desc) order by newsid desc";

newsid为新闻的编号,如果要查询6-10的数据,则要先查询出1-5的数据的newsid,然后选择数据时将newsid为1-5之间的排除掉再选择头5条(这里假设pagesize为5)

最后在需要显示分页的位置使用

”>首页

”>上一页页

”>下一页页

”>尾页

这样就完成分页了,当然这是最基础的方法,网上也有现成网友做好的分页类可以使用,我这里也介绍一种

需要下载一个分页的文件,百度网盘已提供链接了http://pan.baidu.com/share/link?shareid=64635&uk=909074031

文件下载完毕后,需要将文件复制到在项目的WEB-INFO目录下才能使用

导入文件后,在需要分页的页面头部要加入下面一句话才能使用:

最后在需要分页的位置使用标签

url="index.jsp?" pageMax=""/>

这里的currentp,totalpage是和上面基础分页的一样的,查询语句也是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值