`
还有也许
  • 浏览: 164355 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

数据分页显示

    博客分类:
  • wap
阅读更多

如何实现分页,大家能会在脑海里浮现用table,或者如果是wml文件的话写个循环建立多个card,但这都牵涉到一个问题,你把数据库中的数据都先查了一遍,这是多么可怕的事情,但如果说你一页显示10条数据,那么在数据库中只查10条岂不妙哉。所以我就是这么实现的,因为我的项目架构是SpringMVC+Spring+Hibernate,所以先执行对应的Controller,然后返回相应的视图。

看controller实现

 

//获得要显示第几页,因为第一次没有参数,所以给它赋个初值1,如果不是第一次,就可以从页面获得值了
	String page=request.getParameter("pageNum");
	int pageNum;
	if(page==null){
	   pageNum=1;
	}else{
                       pageNum=Integer.parseInt(page);
	}
	//将其塞给前台
	request.setAttribute("pageNum", pageNum);

 

 

String hql = "FROM Company as t WHERE 1=1";
		hql += " ORDER BY corpSid DESC";
		//用GenericDaoImplHibernate中的getCount方法,去查看总条数,而不是全部查询之后统计
		int count=companyDao.getCount(hql);
		//用下面的逻辑得到总页数
		int countPage;
		if(count%10!=0){
			countPage=count/10+1;
		}else{
			countPage=count/10;
		}
		request.setAttribute("countPage", countPage);

 

Query query = companyDao.createQuery(hql);
		//确定查询的第一条数据的位置,和总共要查多少条
		query.setFirstResult((pageNum-1)*10);
		query.setMaxResults(10);
		List<Company> dataset = (List<Company>)query.list();

   前台页面,获得两个数据

 

<%
     int countPage=Integer.parseInt(request.getAttribute("countPage").toString());
   int pageNum=Integer.parseInt(request.getAttribute("pageNum").toString());
   
 %>

 

   然后处理显示

 

 

<p>
		
	 共<%=countPage%>页&nbsp;&nbsp;当前页数:第<%=pageNum%>页
	 <%if((pageNum)>1){ %>
	 <a href="companyList.do?pageNum=<%=pageNum-1%>">上一页</a>
	 <%} %>
	 <%if(pageNum<countPage){ %>
	 <a href="companyList.do?pageNum=<%=pageNum+1%>">下一页</a><br/>
	 <% } %>
</p>

 

这样就OK了,觉得对你有帮助就顶一下吧。只是一下而已

 

 

3
2
分享到:
评论
5 楼 黑暗浪子 2009-12-10  
hesy_007 写道
如果说你一页显示10条数据,那么在数据库中只查10条岂不妙哉
--------------------
不是都这么做的么?难道还有先全部取出来,再在逻辑层取合适的10条数据的?

真分页和假分页区别。很多小项目数据量少,用假分页也无可厚非。
真分页在大型商业项目中是一定要用的。
4 楼 hesy_007 2009-12-10  
如果说你一页显示10条数据,那么在数据库中只查10条岂不妙哉
--------------------
不是都这么做的么?难道还有先全部取出来,再在逻辑层取合适的10条数据的?
3 楼 wujiazhao88 2009-12-10  
没什么另类哦。。楼主做的是wml开发?还是把代码放服务端去吧。。
2 楼 还有也许 2009-12-10  
aidiyuxin 写道
那里另类了???

不好意思,我是个刚入道的程序员,如果我写的文章浪费了你的时间,我感到非常抱歉,请多提宝贵意见,谢谢你的留言。呵呵
1 楼 aidiyuxin 2009-12-10  
那里另类了???

相关推荐

Global site tag (gtag.js) - Google Analytics