一种分页查询方法和系统的制作方法

文档序号:6634011阅读:553来源:国知局
一种分页查询方法和系统的制作方法
【专利摘要】本发明公开的分页查询方法和系统,包括接收应用层的应用服务所发送的查询请求,该请求包括分页号、分页记录数和查询条件;之后,基于查询请求中所包括的分页号、分页记录数,对符合查询条件的结果集执行切分过程,具体地,例如计算分页号对应的行号区间、依据行号区间获取分页号对应的分页查询结果集等;最终,向应用服务返回包含了分页查询结果集的响应信息,以使应用服务实现结果集的分页展示。实际应用场景中,可将本发明作为应用层与数据库间的服务层,为应用层提供分页查询服务,从而,本发明实现了将切分结果集的过程抽取为应用层之外且可被应用层调用的一个通用功能,避免了各应用服务间不必要的重复开发工作,提升了应用服务的开发效率。
【专利说明】一种分页查询方法和系统

【技术领域】
[0001] 本发明属于数据库的分页查询【技术领域】,尤其涉及一种分页查询方法和系统。

【背景技术】
[0002]分页浏览功能是一种常见的web应用功能,当用户需要浏览大量数据时,可通过 分页浏览功能对结果集进行逐页查看。
[0003] 分页浏览功能的实现需要依据分页记录数(即每页最多可包含的记录数)及指定 的分页号,对符合查询条件的结果集(包括多条记录)执行切分过程,以实现指定分页号记 录的获取。目前,结果集的切分过程由应用层的应用服务(查询服务)进行,从而,增加了 应用服务开发人员的工作负担,降低了应用服务的开发效率;同时,底层数据库与应用层的 应用服务间往往为一对多的关系,各应用服务间结果集切分功能的重复性开发,也造成了 不必要的资源浪费。


【发明内容】

[0004] 有鉴于此,本发明的目的在于提供一种分页查询方法和系统,以实现将切分结果 集的过程抽取为应用层之外且可被应用层调用的一个通用功能,进而避免各应用服务间不 必要的重复开发工作,提升应用服务的开发效率。
[0005] 为此,本发明公开如下技术方案:
[0006] -种分页查询方法,包括:
[0007] 接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录 数及查询条件;
[0008] 获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数;
[0009] 基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和 结束行号计算公式计算所述分页号所对应的开始行号和结束行号;
[0010]获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将 所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所 述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号;
[0011]向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
[0012]上述方法,优选的,所述获取数据库中符合所述查询条件的记录的总数,包括:
[0013] 从所述查询请求中过滤出所述查询条件;
[0014] 依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的 查询总记录数SQL语句;
[0015]利用所创建的查询总记录数SQL语句,从数据库中统计出符合所述查询条件的记 录的总数。
[0016] 上述方法,优选的,所述开始行号计算公式戈

【权利要求】
1. 一种分页查询方法,其特征在于,包括: 接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、分页记录数及 查询条件; 获取数据库中符合所述查询条件的记录的总数,并将其标记为总记录数; 基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计算公式和结束 行号计算公式计算所述分页号所对应的开始行号和结束行号; 获取结果集中行号不小于所述开始行号且不大于所述结束行号的各条记录,并将所述 各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数据库中符合所述查 询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的行号; 向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果集。
2. 根据权利要求1所述的方法,其特征在于,所述获取数据库中符合所述查询条件的 记录的总数,包括: 从所述查询请求中过滤出所述查询条件; 依据预先存储的查询总记录数SQL语句的语句格式,创建所述查询条件所对应的查询 总记录数SQL语句; 利用所创建的查询总记录数SQL语句,从数据库中统计出符合所述查询条件的记录的 总数。
3. 根据权利要求2所述的方法,其特征在于,所述开始行号计算公式为 N >s = (min(-,max(/;,0))-l)x/?;所述结束行号计算公式为 e = min(s+n,N); η 其中,S表示开始行号,e表示结束行号,Ν表示总记录数,η表示分页记录数,ρ表示分 页号。
4. 根据权利要求3所述的方法,其特征在于,所述结果集中第m条记录的行号为m-1, 其中,0 < m彡N。
5. 根据权利要求4所述的方法,其特征在于,所述从结果集中获取行号不小于所述开 始行号且不大于所述结束行号的各条记录,包括: 利用预先存储的普通查询SQL语句的语句格式,创建所述查询条件所对应的普通查询 SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句; 基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格式封装,得到分 页查询SQL语句; 利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中行号不小于所述 开始行号且不大于所述结束行号的各条记录。
6. 根据权利要求1所述的方法,其特征在于,所述响应信息还包括总记录数、总页数、 当前页所包含的记录数、当前页数。
7. -种分页查询系统,其特征在于,包括: 接收模块,用于接收应用层的应用服务所发送的查询请求,所述查询请求包括分页号、 分页记录数及查询条件; 第一获取模块,用于获取数据库中符合所述查询条件的记录的总数,并将其标记为总 记录数; 计算模块,用于基于所述分页号、分页记录数及总记录数,分别利用预设的开始行号计 算公式和结束行号计算公式计算所述分页号所对应的开始行号和结束行号; 第二获取模块,用于获取结果集中行号不小于所述开始行号且不大于所述结束行号的 各条记录,并将所述各条记录形成的集合标记为分页查询结果集,其中,所述结果集为由数 据库中符合所述查询条件的所有记录所构成的集合,所述结果集中的每条记录对应唯一的 行号; 发送模块,用于向所述应用服务发送响应信息,所述响应信息包括所述分页查询结果 集。
8. 根据权利要求7所述的系统,其特征在于,所述第一获取模块,包括: 过滤单元,用于从所述查询请求中过滤出所述查询条件; 第一创建单元,用于依据预先存储的查询总记录数SQL语句的语句格式,创建所述查 询条件所对应的查询总记录数SQL语句; 统计单元,用于利用所创建的查询总记录数SQL语句从数据库中统计出符合所述查询 条件的记录的总数。
9. 根据权利要求7所述的系统,其特征在于,所述第二获取模块,包括: 第二创建单元,用于利用预先存储的普通查询SQL语句的语句格式,创建所述查询条 件所对应的普通查询SQL语句,所述普通查询SQL语句为未提供分页查询功能的SQL语句; 修改单元,用于基于所述开始行号和结束行号对所述普通查询SQL语句进行修改和格 式封装,得到分页查询SQL语句; 查询单元,用于利用所述分页查询SQL语句对数据库进行查询,以实现获取结果集中 行号不小于所述开始行号且不大于所述结束行号的各条记录。
【文档编号】G06F17/30GK104298788SQ201410640446
【公开日】2015年1月21日 申请日期:2014年11月13日 优先权日:2014年11月13日
【发明者】陈炙, 聂砂, 李拓, 贾国琛, 白彧斐 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1