应用程序内部数据处理方法、装置及设备制造方法及图纸

技术编号:26845276 阅读:8 留言:0更新日期:2020-12-25 13:07
本发明专利技术公开了一种应用程序内部数据处理方法、装置及设备。本发明专利技术的构思在于通过自定义语法与函数对数据库命令进行扩展,使功能更加丰富,实现了在应用程序中进行跨服务器、跨数据库、跨表的数据关联、筛选、聚合等操作,具体是以特定的语法解析自定义命令,将跨库跨表的数据以指定的形式进行组装输出,例如通过解析自定义的SQL命令字符串,把跨库跨表的SQL命令解析成单库单表,然后在应用程序内存中计算组装数据最后输出,不再依赖数据库端进行复杂的数据处理。

【技术实现步骤摘要】
应用程序内部数据处理方法、装置及设备
本专利技术涉及数据处理领域,尤其涉及一种应用程序内部数据处理方法、装置及设备。
技术介绍
近年来,随着计算机技术的发展,计算机对于人类生活的影响越来越大,其制造出的数据量也越来越大,可用于计算与处理的数据也越来越多。作为开发者,往往会使用数据库开发商所提供的SQL语法与操作函数在数据库端进行数据处理。但在某些情况下,比如开发商提供的命令、函数本身存在缺陷,使得数据处理较为不便。例如,目前的数据处理方式大多是直接使用数据库开发商提供的SQL命令,或先使用自定义的命令后转换成数据库开发商的SQL命令,然后在数据库端进行数据处理(如数据的筛选、聚合等),最终将处理好的数据返回。然而,受限于数据库开发商提供的SQL命令与函数,在开发商没有提供特定的处理方法时,则无法处理数据,尤其在处理跨服务器、跨数据库、跨表的数据操作时,这种限制带来的不便更为凸显。
技术实现思路
鉴于上述,本专利技术旨在提供一种应用程序内部数据处理方法、装置及设备,还相应地提供了一种计算机程序产品,主要解决仅能在数据库端对当前数据库表进行处理,无法跨服务器、跨数据库、跨表进行数据处理的问题。本专利技术采用的技术方案如下:第一方面,本专利技术提供了一种应用程序内部数据处理方法,包括:通过预设语法解析自定义的命令语句,得到若干数据库表;在相应于每个数据库表的数据库中进行查询,并将取出的数据存至应用程序内存;在内存中对数据库表进行关联,并将关联的数据合并后得到结果列表;对结果列表中的字段基于预设的函数进行处理,得到最终结果。在其中至少一种可能的实现方式中,通过预设语法解析自定义的命令语句,还得到相应于每个数据库表的查询字段列表以及筛选条件;所述在相应于每个数据库表的数据库中进行查询包括:根据查询字段列表与筛选条件,在相应的数据库中查询得到每个数据库表的结果,并取出存放在应用程序内存中。在其中至少一种可能的实现方式中,所述在相应的数据库中查询得到每个数据库表的结果包括:获取数据库表的ID;分批次并依据预设的数据量上限值,从数据库中取出对应于当前数据库表ID的结果集。在其中至少一种可能的实现方式中,通过预设语法解析自定义的命令语句,还得到多个数据库表之间的关联关系;所述在内存中对数据库表进行关联,并将关联的数据合并后得到结果列表包括:通过解析出的关联关系,从数据库中取出与当前数据库表相关联的若干关联表的结果集:将所有关联表的结果集中的预设字段合并到对应的数据库表的结果集上,得到准输出结果列表。在其中至少一种可能的实现方式中,所述对结果列表中的字段基于预设的函数进行处理,得到最终结果包括:将准输出结果列表中的每个字段的值代入到相应的预设函数中进行处理;将函数处理后的结果作为最终结果。第二方面,本专利技术提供了一种应用程序内部数据处理装置,包括解析模块,用于通过预设语法解析自定义的命令语句,得到若干数据库表;查询模块,用于在相应于每个数据库表的数据库中进行查询,并将取出的数据存至应用程序内存;关联模块,用于在内存中对数据库表进行关联,并将关联的数据合并后得到结果列表;函数处理模块,用于对结果列表中的字段基于预设的函数进行处理,得到最终结果。在其中至少一种可能的实现方式中,所述解析模块还用于通过预设语法解析自定义的命令语句,得到相应于每个数据库表的查询字段列表以及筛选条件;所述查询模块还用于根据查询字段列表与筛选条件,在相应的数据库中查询得到每个数据库表的结果,并取出存放在应用程序内存中。在其中至少一种可能的实现方式中,所述查询模块具体包括:单表ID获取单元,用于获取数据库表的ID;单表数据取出单元,用于分批次并依据预设的数据量上限值,从数据库中取出对应于当前数据库表ID的结果集。在其中至少一种可能的实现方式中,所述解析模块还用于通过预设语法解析自定义的命令语句,得到多个数据库表之间的关联关系;所述关联模块具体包括:关联数据获取单元,用于通过解析出的关联关系,从数据库中取出与当前数据库表相关联的若干关联表的结果集;合并单元,用于将所有关联表的结果集中的预设字段合并到对应的数据库表的结果集上,得到准输出结果列表。在其中至少一种可能的实现方式中,所述函数处理模块具体包括:函数处理单元,用于将准输出结果列表中的每个字段的值代入到相应的预设函数中进行处理;输出结果确定单元,用于将函数处理后的结果作为最终结果。第三方面,本专利技术提供了一种应用程序内部数据处理设备,包括:一个或多个处理器、一个或多个存储器以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备运行上述应用程序内部数据处理方法。第四方面,本专利技术提供了一种计算机程序产品,该计算机程序产品在计算机设备上运行时,使计算机设备加载并运行上述应用程序内部数据处理方法。本专利技术的构思在于,通过自定义语法与函数对数据库命令进行扩展,使功能更加丰富,实现了在应用程序中进行跨服务器、跨数据库、跨表的数据关联、筛选、聚合等操作,具体是以特定的语法解析自定义命令,并将跨库跨表的数据以指定的形式进行组装输出,例如通过解析自定义的SQL命令字符串,把跨库跨表的SQL命令解析成单库单表,然后在应用程序内存中计算组装数据最后输出,不再依赖数据库端进行复杂的数据处理。附图说明为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步描述,其中:图1为本专利技术提供的应用程序内部数据处理方法实施例的流程图;图2为本专利技术提供的数据库命令语句实施例的示意图;图3为本专利技术提供的执行指定数据处理环节的实施例的示意图;图4为本专利技术提供的应用程序内部数据处理装置实施例的示意图。具体实施方式下面详细描述本专利技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。如图1所示,本专利技术提供了至少一种应用程序内部数据处理方法的实施例,其可以包括如下步骤:步骤S1、通过预设语法解析自定义的命令语句,得到若干数据库表。在实际操作中,本专利技术可以但不限于使用antlr4来定义语法,之后通过它来识别命令语言,antlr4是一款强大的语法生成器工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件,关于antlr4的使用方法这里不作赘述。本专利技术还可以使用JAVA来开发特定的数据处理函数,当从命令中解析到特定的语法时,则调用指定的函数来处理数据。另外,可以通过开发或插件的方式,可以不断地扩充函数的数量与功能本文档来自技高网...

【技术保护点】
1.一种应用程序内部数据处理方法,其特征在于,包括:/n通过预设语法解析自定义的命令语句,得到若干数据库表;/n在相应于每个数据库表的数据库中进行查询,并将取出的数据存至应用程序内存;/n在内存中对数据库表进行关联,并将关联的数据合并后得到结果列表;/n对结果列表中的字段基于预设的函数进行处理,得到最终结果。/n

【技术特征摘要】
1.一种应用程序内部数据处理方法,其特征在于,包括:
通过预设语法解析自定义的命令语句,得到若干数据库表;
在相应于每个数据库表的数据库中进行查询,并将取出的数据存至应用程序内存;
在内存中对数据库表进行关联,并将关联的数据合并后得到结果列表;
对结果列表中的字段基于预设的函数进行处理,得到最终结果。


2.根据权利要求1所述的应用程序内部数据处理方法,其特征在于,通过预设语法解析自定义的命令语句,还得到相应于每个数据库表的查询字段列表以及筛选条件;
所述在相应于每个数据库表的数据库中进行查询包括:
根据查询字段列表与筛选条件,在相应的数据库中查询得到每个数据库表的结果,并取出存放在应用程序内存中。


3.根据权利要求2所述的应用程序内部数据处理方法,其特征在于,所述在相应的数据库中查询得到每个数据库表的结果包括:
获取数据库表的ID;
分批次并依据预设的数据量上限值,从数据库中取出对应于当前数据库表ID的结果集。


4.根据权利要求1~3任一项所述的应用程序内部数据处理方法,其特征在于,通过预设语法解析自定义的命令语句,还得到多个数据库表之间的关联关系;
所述在内存中对数据库表进行关联,并将关联的数据合并后得到结果列表包括:
通过解析出的关联关系,从数据库中取出与当前数据库表相关联的若干关联表的结果集;
将所有关联表的结果集中的预设字段合并到对应的数据库表的结果集上,得到准输出结果列表。


5.根据权利要求4所述的应用程序内部数据处理方法,其特征在于,所述对结果列表中的字段基于预设的函数进行处理,得到最终结果包括:
将准输出结果列表中的每个字段的值代入到相应的预设函数中进行处理;
将函数处理后的结果作为最终结果。


6.一种应用程序内部数据处理装置,其特征在于...

【专利技术属性】
技术研发人员:武振杰郭嘉炯
申请(专利权)人:北京值得买科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1