struts+spring+hibernate通用分页方法

struts+spring+hibernate通用分页方法

ID:37898413

大小:319.50 KB

页数:21页

时间:2019-06-02

struts+spring+hibernate通用分页方法_第1页
struts+spring+hibernate通用分页方法_第2页
struts+spring+hibernate通用分页方法_第3页
struts+spring+hibernate通用分页方法_第4页
struts+spring+hibernate通用分页方法_第5页
资源描述:

《struts+spring+hibernate通用分页方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、分页有2种办法:1、从数据库中取得记录,在内存中再划分,如果遇到记录数很大的时候效率很成问题,此法不可取。2、采用hibernate的物理分页,每次只是取一页。从客户端传进来的是第几页和每页多少条记录,要首先查询符合记录的总记录数,再根据总记录数和当前页,每页记录数可以算出要取的是数据库中的第几条记录。2次查询不可避免了。单元测试如下:publicfinalvoidtestFindAllRole(){logger.debug("testFindAllRole");longl1=System.currentTimeMillis();Stringmyactio

2、n="roleList.do";StringcurPageNO="1";CriteriaQuerycq=newCriteriaQuery(Role.class,curPageNO,myaction);cq.setPageSize(10);PageSupportps=BeanFactory.getInstance().getRightDelegate().findAllRole(cq,state);longl2=System.currentTimeMillis();AppUtils.printCollection(ps.getResultList());Sy

3、stem.out.println("一共用时为:"+(l2-l1));}CriteriaQuery类是对hibernateQBC查询方法的封装,需要的参数是当前操作的实体类,myaction,curPageNO,pageSize,以便构造出相应的上下翻页的工具条。在delegate中只是将值向下传:publicPageSupportfindAllRole(CriteriaQuerycq,IStatestate){if(DelegateUtil.isNullParam(cq,"CriteriaQuery",state)){returnnull;}Reques

4、treq=newRequest();req.setServiceName(ServiceConsts.FindAllRoleProcessor);req.setValue("CriteriaQuery",cq);try{Responseresp=getDelegate().execute(req);DelegateUtil.setIState(state,resp);return(PageSupport)(resp.getValue("PageSupport"));}catch(Exceptione){DelegateUtil.handleExceptio

5、n(e,"findAllRole",state);}returnnewPageSupport();}在command中publicclassFindAllRoleextendsCommand{privateRoleDaodao;publicvoidsetDao(RoleDaodao){this.dao=dao;}publicvoidexecute(Mapparams,Mapresponse)throwsException{response.put("PageSupport",(PageSupport)dao.find((CriteriaQuery)para

6、ms.get("CriteriaQuery"),true));}……}直接就是调用dao的find方法:publicPageSupportfind(finalCriteriaQuerycq,finalbooleanisOffset){return(PageSupport)getHibernateTemplate().execute(newHibernateCallback(){publicObjectdoInHibernate(Sessionsession)throwsHibernateException,SQLException{Criteriacrit

7、eria=cq.getDetachedCriteria().getExecutableCriteria(session);//得到总行数intallCounts=((Integer)criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();criteria.setProjection(null);//还原intcurPageNO=PagerUtil.getCurPageNO(cq.getCurPage());//当前页intoffset=PagerUtil.getOf

8、fset(allCounts,curPageNO,cq.getPa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。