浏览 4781 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-17
最后修改:2010-09-23
jpager是通过把所有查询数据都存放在session中进行分页,当数据量大切换时就比较缓慢,修改之后,通过hibernate在数据库底层进行分页 但修改后有些不足,标签主要用来管理导航栏,在java代码中得进行一些设置! 在XXXXDAO中得定义下面的方法 //sql是查询语句 //pagesize是每页记录数 //pageno是当前页面数 public List pageList(String sql,int pagesize,int pageno){ Session session = this.getSession(); Query query = session.createQuery(sql); query.setFirstResult((pageno - 1) * pagesize); query.setMaxResults(pagesize); List list=query.list(); return list; } 在相对应的控制器中XXXXController(extends MultiActionController) 要设置private int pagesize;//通过set/get注入数值 public ModelAndView displayXXX(HttpServletRequest req,HttpServletResponse res){ ....... List list = this.getCompanyDAO().getAll(); int size =list.size(); if(size>0){ String pagen =(String) req.getParameter("pageNo"); String s = String.valueOf(size); int pageno; if (pagen==null){ pageno =1; }else{ pageno = Integer.parseInt(pagen); } List XXXXs =this.getXXXXDAO().pageList("from XXXX", pagesize, pageno); req.setAttribute("total",s); req.setAttribute("pageNo", String.valueOf(pageno)); req.setAttribute("pageSize", String.valueOf(pagesize)); return new ModelAndView(this.getXXXXPage(),"XXXXs",XXXXs); 在页面中 ..... <%@taglib prefix="page" uri="http://jpagerxp.com/taglibs/page" %> ....... <c:forEach var="result" items ="${XXXXs}" varStatus="status"> <tr> <td><input type="checkbox" name="id" value="${result.id}" /></td> <td>${result.name}</td> </tr> </c:forEach> <tr class="ttd"> <td colspan="2" align="center"> <page:bt/>//调用标签 </td> </tr> 请大家提些意见! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-18
这个分页支持条件查询么?
|
|
返回顶楼 | |
发表时间:2008-11-18
public List pageList(String sql,int pagesize,int pageno){
Session session = this.getSession(); Query query = session.createQuery(sql); query.setFirstResult((pageno - 1) * pagesize); query.setMaxResults(pagesize); List list=query.list(); return list; } ----------- 这个就有点问题了--------- 不是适合所有情况的。 |
|
返回顶楼 | |
发表时间:2008-11-18
ray_linn
请问是什么问题,可以详细说明一吗?谢谢 |
|
返回顶楼 | |
发表时间:2008-11-18
godson_2003 写道 这个分页支持条件查询么? 当然支持了! public List pageList(String sql,int pagesize,int pageno){ ...... } sql可以是带条件的sql语句! |
|
返回顶楼 | |
发表时间:2008-11-18
请问是什么问题,可以详细说明一吗?谢谢
ray_linn 写道 public List pageList(String sql,int pagesize,int pageno){ Session session = this.getSession(); Query query = session.createQuery(sql); query.setFirstResult((pageno - 1) * pagesize); query.setMaxResults(pagesize); List list=query.list(); return list; } ----------- 这个就有点问题了--------- 不是适合所有情况的。 请问是什么问题,可以详细说明一吗?谢谢 |
|
返回顶楼 | |
发表时间:2008-11-18
用了hibernate,sql就尽量少用。
多用criteria,方便简洁。 |
|
返回顶楼 | |
发表时间:2008-11-18
http://www.iteye.com/topic/18127 -- 这个就是问题之一。
在另外一些数据库上比如MSSQL,SYBASE下,大数据量下也容易出现内存占用以至tomcat崩溃的问题。 如果大数据量,最好还是忘记hibernate吧。 |
|
返回顶楼 | |