Java中的分页技术
来源:互联网 发布:mac 不让安装不明文件 编辑:程序博客网 时间:2024/05/22 06:24
分页关键的是sql语句要理解怎么写就完成一半了
案例: 现在对一个新闻首页的新闻进行分页
NewsDao dao=new NewsDao(); 对新闻操做的dao类
int pagesize=10; 每页面的数据数据量
int lastpage=1; 上一页初始为1
int nextpage=1; 下一页初始为1
int currentpage=1; 当前页初始为1
int totalrows=dao.count(); 获取总的新闻的记录条数
//计算总的页面数
int totalpage=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<News> 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)
最后在需要显示分页的位置使用
<a href=”index.jsp?page=<%=1%>”>首页</a>
<a href=”index.jsp?page=<%=lastpage%>”>上一页页</a>
<a href=”index.jsp?page=<%=nextpage%>”>下一页页</a>
<a href=”index.jsp?page=<%=totalpage%>”>尾页</a>
这样就完成分页了,当然这是最基础的方法,网上也有现成网友做好的分页类可以使用,我这里也介绍一种
需要下载一个分页的文件,百度网盘已提供链接了http://pan.baidu.com/share/link?shareid=64635&uk=909074031
文件下载完毕后,需要将文件复制到在项目的WEB-INFO目录下才能使用
导入文件后,在需要分页的页面头部要加入下面一句话才能使用:
<%@tagliburi="/WEB-INF/MyPage.tld"prefix="pt"%>
最后在需要分页的位置使用标签
<pt:pagepageIndex="<%=currentpage%>"
url="index.jsp?"pageMax="<%=totalpage%>"/>
这里的currentp,totalpage是和上面基础分页的一样的,查询语句也是一样的
- Java中的分页技术
- asp中的分页技术
- 数据库中的分页技术
- java分页技术比较
- Java另一种分页技术
- java分页技术
- java分页技术
- java分页技术
- Java.Web - 分页技术
- Java分页技术
- java 分页技术
- Java web 分页技术
- java分页技术
- 浅谈Java分页技术
- java + struts2 分页技术
- Java分页技术
- java--分页技术(1)
- java--分页技术(2)
- python函数匹配任意数目的参数
- CGDIplus2Dlg::OnDrawEllipse()
- javascript 刷新页面、返回上一页
- 详解ASP.NET的内置对象
- 黑马程序员_java异常处理
- Java中的分页技术
- sem_init() 函数
- Cocos2d-X 2.0嵌入MFC的子窗体的方法(1.0姐妹篇)
- jQuery Utilities
- 数据库oracle与mysql在语法上的区别
- jQuery Utilities
- 第三章 标准库类型(part 3) 迭代器
- sem_init函数
- Linu查看用户的权限