原理
数据库分页,从客户角度来看,主要是提供两个参数:每页数量(pageSize),当前页(currentPage)。从后台处理来看,主要是分页查询数据库,查询总数;所以只需处理好这两个参数就可以完成分页了。
本文内容
本文的封装参考easyjweb pageList名字,(只是以前用过,继承关系实现应该都不一样)。
本文中总共设计到了两个核心接口:
IPageList: 数据查询和结果承载的主接口
IPager: 页面相关处理接口
另外,提供了抽象类,做公共处理,见AbstractPageList、AbstractPager。
- 如因为持久层使用技术的不同,要实现使用该接口,请继承AbstractPageList类,实现抽象方法。
- 如想实现自己的页面显示的分页组件,请继承AbstractPager类,实现抽象方法。
本文,下面的下载中,会有ibatis和mybatis的两个IPageList实现的实现。这就是说,如果您的项目使用的是上述两种持久层,则可以直接拿来使用。否则,请继承AbstractPageList实现响应持久层的代码。
使用方法
- IPageList pList=new XxxPageList([param]);//初始化,设置参数
- pList.doList();//发出实际查询
- pList.getResult();//可选操作,得到并处理相应数据
- IPager pager=new XxxPager(pageList);//创建分页组件类
- pager.save2Request(request,"listName");//保存数据,以及分页组件到页面
- 页面合适的位置放置${pager}
如果这里看的不是很明白,我举个web三次应用中的实际代码,方便大家理解(struts2+spring+mybatis)
- action层
public String doList(){ HttpServletRequest request=ServletActionContext.getRequest(); String callNum=request.getParameter("userName"); String accNum=request.getParameter("phone"