[发明专利]一种分页查询方法和系统有效
申请号: | 201410640446.0 | 申请日: | 2014-11-13 |
公开(公告)号: | CN104298788B | 公开(公告)日: | 2017-12-12 |
发明(设计)人: | 陈炙;聂砂;李拓;贾国琛;白彧斐 | 申请(专利权)人: | 中国建设银行股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分页 查询 方法 系统 | ||
1.一种分页查询方法,其特征在于,应用于服务层,所述服务层处于应用层与数据库之间,且服务层作为数据库方的服务接口,用于为应用层的多个应用服务提供通用的分页查询服务,所述方法包括:
接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件;
获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数;
基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号;其中,所述开始行号计算公式为所述结束行号计算公式为e=min(s+n,N);所述s表示开始行号,e表示结束行号,N表示总记录数,n表示分页记录数,p表示分页号;
获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号;
向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
2.根据权利要求1所述的方法,其特征在于,所述获取数据库中符合所述查询条件的记录的总数,包括:
从所述查询请求中过滤出所述查询条件;
依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询总记录数SQL语句;
利用所创建的查询总记录数SQL语句,从数据库中统计出符合所述查询条件的记录的总数。
3.根据权利要求1所述的方法,其特征在于,所述结果集中第m条记录的行号为m-1,其中,0<m≤N。
4.根据权利要求3所述的方法,其特征在于,所述从结果集中获取行号不小于所述开始行号且不大于所述结束行号的各条记录,包括:
利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句;
基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分页查询SQL语句;
利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录。
5.根据权利要求1所述的方法,其特征在于,所述响应信息还包括总记录数、总页数、当前页所包含的记录数、当前页数。
6.一种分页查询系统,其特征在于,应用于服务层,所述服务层处于应用层与数据库之间,且服务层作为数据库方的服务接口,用于为应用层的多个应用服务提供通用的分页查询服务,所述系统包括:
接收模块,用于接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及查询条件;
第一获取模块,用于获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数;
计算模块,用于基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号;其中,所述开始行号计算公式为所述结束行号计算公式为e=min(s+n,N);所述s表示开始行号,e表示结束行号,N表示总记录数,n表示分页记录数,p表示分页号;
第二获取模块,用于获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号;
发送模块,用于向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
7.根据权利要求6所述的系统,其特征在于,所述第一获取模块,包括:
过滤单元,用于从所述查询请求中过滤出所述查询条件;
第一创建单元,用于依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询总记录数SQL语句;
统计单元,用于利用所创建的查询总记录数SQL语句从数据库中统计出符合所述查询条件的记录的总数。
8.根据权利要求6所述的系统,其特征在于,所述第二获取模块,包括:
第二创建单元,用于利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句;
修改单元,用于基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分页查询SQL语句;
查询单元,用于利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410640446.0/1.html,转载请声明来源钻瓜专利网。