【Java技术点滴】——分页查询
2015-01-31 23:58
197 查看
项目中我们会经常用到分页查询的功能,总结他们的特点,可归结如下
从页面开始分析,我们可以提供的参数有:
1.每页记录数
2.查询的页数
我们需要的返回值:
1.实体集合(每页的记录)--结果集
2.总共记录数
3.总共多少页
4.当前页数
5.每页记录数
同时我们也需要通过对页号的操作,查询出不同的数据集显示。因此有必要知道上一页、下一页、首页、尾页等的信息,而且像这样的分页查询也会很常用。针对以上需求,我们封装了专门的实体,用于将分页查询的信息统一管理使用。
对于分页查询的语句,也是有规律可以遵循的:
三层查询嵌套
最外层--行号限制:大于开始数据行号
中间层--行号限制:小于等于结束数据行号
最内层--查询出符合要求的结果集并排序
总结
通过上面简单的封装,便可以使我们的程序复用大部分分页功能的代码,封装的特性在这里得到了很好的体现,当然这些也是建立在对现实应用的观察以及一步步的抽象上的,体会到了面向对象的好处,也提醒了自己在以后的项目中努力去提取相类似的代码,将程序的实现化繁为简、灵活可控。
从页面开始分析,我们可以提供的参数有:
1.每页记录数
2.查询的页数
我们需要的返回值:
1.实体集合(每页的记录)--结果集
2.总共记录数
3.总共多少页
4.当前页数
5.每页记录数
同时我们也需要通过对页号的操作,查询出不同的数据集显示。因此有必要知道上一页、下一页、首页、尾页等的信息,而且像这样的分页查询也会很常用。针对以上需求,我们封装了专门的实体,用于将分页查询的信息统一管理使用。
/** * 封装分页信息 * @author Forrest * */ public class PageModel<E> { //每页的记录 private List<E> list; //总共记录数 private int totalRecords; //每页记录数 private int pageSize; //当前页 private int pageNo; /** * 总页数 * @return */ public int getTotalPages(){ return (totalRecords + pageSize -1)/pageSize; } /** * 返回首页页号 * @return */ public int getTopPageNo(){ return 1; } /** * 返回上一页页号 * @return */ public int getPreviousPageNo(){ if(pageNo <= 1){ return 1; } return pageNo - 1; } /** * 返回下一页页号 * @return */ public int getNextPageNo(){ if(pageNo >= getTotalPages()){ return getBottomPageNo(); } return pageNo + 1; } /** * 返回尾页页号 * @return */ public int getBottomPageNo(){ return getTotalPages(); } public List<E> getList() { return list; } public void setList(List<E> list) { this.list = list; } public int getTotalRecords() { return totalRecords; } public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } }
对于分页查询的语句,也是有规律可以遵循的:
三层查询嵌套
最外层--行号限制:大于开始数据行号
中间层--行号限制:小于等于结束数据行号
最内层--查询出符合要求的结果集并排序
总结
通过上面简单的封装,便可以使我们的程序复用大部分分页功能的代码,封装的特性在这里得到了很好的体现,当然这些也是建立在对现实应用的观察以及一步步的抽象上的,体会到了面向对象的好处,也提醒了自己在以后的项目中努力去提取相类似的代码,将程序的实现化繁为简、灵活可控。
相关文章推荐
- java查询分页技术(1)
- java查询分页技术(2)
- J2EE--关于JAVA的分页查询操作技术
- 原创:仿Baidu,Google查询分页技术JAVA实现
- 每天看一遍 仿Baidu,Google查询分页技术JAVA实现
- 关于JAVA的分页查询操作技术
- 关于JAVA的分页查询操作技术(zz)
- Java技术积累——用最原始的代码见证分页查询实现原理
- 关于JAVA的分页查询操作技术
- 关于JAVA的分页查询操作技术
- 关于JAVA的分页查询操作技术
- Extjs分页使用java实现数据库数据查询
- 分页技术原理与实现(二)——Java+Oracle代码实现
- java中软件开发的假分页和模糊查询的方法
- SQL Server 2005 技术内幕 TSQL查询学习笔记chapter4之三排名函数Row_number()和分页应用
- java分页技术比较
- java分页查询 Criteria
- JavaWeb开发中分页的技术
- Java的分页查询方法
- Tomcat数据库连接池 + JavaBean + 分页技术 + JDBC3.0 + 大型数据库