一种数据动态查询的方法及装置与流程

文档序号:11155231阅读:267来源:国知局
一种数据动态查询的方法及装置与制造工艺

本发明涉及数据块库应用技术领域,尤其涉及一种数据动态查询的方法及装置。



背景技术:

在目前的很多软件应用系统中,经常需要把程序和数据库结合起来进行使用,即经常面临访问数据库的问题。目前,软件的数据查询功能一般设计为静态查询条件,即为在查询页面预先设置好查询条件,用户根据各个查询条件在需要进行数据查询的查询条件中填写相应的查询数据,服务器在获取到用户在需要进行数据查询的查询条件中填写的相应的查询数据后,在数据块中进行相应的查询,并将查询结果反馈至用户。

申请人在进行上述数据查询的过程中,发现存在如下问题:静态查询条件的查询方式对于查询条件的增删扩展性较差,只能通过修改代码完成,维护成本高。



技术实现要素:

本发明的实施例提供一种数据动态查询的方法及装置,用以降低维护成本。

为达到上述目的,本发明的实施例采用如下技术方案:

本发明实施例提供了一种数据动态查询的方法,包括:从查询客户端获取结构化查询数据;所述结构化查询数据中包含有用户输入的查询条件、关系运算信息、查询条件的查询数据及查询条件间的组合关系;根据所述结构化查询数据中的查询条件,及预设对象关系映射,确定所述结构化查询数据对应查询属性;所述预设对象关系映射是预先设置的,用于标示出所述数据库中查询表的不同属性与不同查询条件间的对应关系;根据所述结构化查询数据,对所述查询属性进行数据查询,获取查询结果。

可选地,在所述从查询客户端获取结构化查询数据之前,还包括:向所述查询客户端提供已存储的结构化查询数据;所述从查询客户端获取结构化查询数据包括:接收查询客户端发送的结构化查询数据;确定是否存储有接收的所述结构化查询数据;在未存储接收的所述结构化查询数据,存储所述结构化查询数据。

可选地,所述预设对象关系映射通过注解的方式标示出所述数据库中查询表的不同属性与不同查询条件间的对应关系。

可选地,所述结构化查询数据为至少一个JSON表达式;所述JSON表达式与所述查询条件一一对应;所述根据所述结构化查询数据,对所述查询属性进行数据查询,获取查询结果包括:利用所述JSON表达式,对所述查询属性进行数据查询,获取查询结果。

可选地,所述利用所述JSON表达式,对所述查询属性进行数据查询,获取查询结果包括:在所述JSON表达式为嵌套式JSON表达式时,利用递归方式解析所述JSON表达式,并根据解析出的JSON表达式,对所述查询属性进行数据查询,获取查询结果。

进一步的,本发明实施例提供了一种数据动态查询的装置,包括:获取单元,用于从查询客户端获取结构化查询数据;所述结构化查询数据中包含有用户输入的查询条件、关系运算信息、查询条件的查询数据及查询条件间的组合关系;确定单元,用于根据所述结构化查询数据中的查询条件,及预设对象关系映射,确定所述结构化查询数据对应查询属性;所述预设对象关系映射是预先设置的,用于标示出所述数据库中查询表的不同属性与不同查询条件间的对应关系;所述获取单元,还用于根据所述结构化查询数据,对所述查询属性进行数据查询,获取查询结果。

可选地,还包括:处理单元,用于向所述查询客户端提供已存储的结构化查询数据;所述获取单元,具有用于接收查询客户端发送的结构化查询数据;确定是否存储有接收的所述结构化查询数据;在未存储接收的所述结构化查询数据,存储所述结构化查询数据。

可选地,所述预设对象关系映射通过注解的方式标示出所述数据库中查询表的不同属性与不同查询条件间的对应关系。

可选地,所述结构化查询数据为至少一个JSON表达式;所述JSON表达式与所述查询条件一一对应;所述获取单元,具体用于利用所述JSON表达式,对所述查询属性进行数据查询,获取查询结果。

可选地,所述获取单元,具体用于在所述JSON表达式为嵌套式JSON表达式时,利用递归方式解析所述JSON表达式,并根据解析出的JSON表达式,对所述查询属性进行数据查询,获取查询结果。

本发明实施例提供了一种数据动态查询的方法及装置,数据动态查询的装置可以获取结构化查询数据,根据结构化查询数据中的查询条件及预设对象关系映射确定结构化查询数据对应查询属性;根据结构化查询数据,对查询属性进行数据查询,获取查询结果。这样一来,用户可以根据自己实现需求在客户端中生成结构化查询数据,并发送至数据动态查询的装置,以便数据动态查询的装置根据结构化查询数据进行相应的数据查询,用户在客户端生成结构化查询数据时,仅需根据自身的需求进行查询条件的设置,使得查询条件的增删扩展性较好,降低了维护成本。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据动态查询的方法的流程示意图;

图2为本发明实施例提供的另一种数据动态查询的方法的流程示意图;

图3为本发明实施例提供的一种数据动态查询的结构示意图;

图4为本发明实施例提供的另一种数据动态查询的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种数据动态查询的方法,包括:

步骤101、从查询客户端获取结构化查询数据。

其中,结构化查询数据中包含有用户输入的查询条件、关系运算信息、查询条件的查询数据及查询条件间的组合关系。

具体的,用户在需要进行数据查询时,可以登录至相应的客户端,在客户端中输入查询条件,关系运算信息、查询条件的查询数据及每个查询条件间的组合关系。

在客户端中完成上述各个数据的输入后,客户端可以上述各个数据作为结构化查询数据发送至数据动态查询的装置。

进一步的,在进行具体实现时,上述查询条件即为实体的属性,关系运算信息即为关系运算符。例如,用户输入的查询条件为车辆的车主,车辆的颜色,输入的关系运算信息为等于,输入的查询条件的查询数据为张三,黑色,输入的查询条件间的组合关系为与关系。此时,查询客户端获取的结构化查询数据为:“车辆的车主等于张三”AND“车辆的颜色等于黑色”。

步骤102、根据结构化查询数据中的查询条件,及预设对象关系映射,确定结构化查询数据对应查询属性。

其中,预设对象关系映射是预先设置的,用于标示出数据库中查询表的不同属性与不同查询条件间的对应关系。

具体的,在数据动态查询的装置中,数据均存储在数据库的不同查询表中,且在查询表分别记录了数据的不同属性。针对一个数据,在数据库的查询表中,需记录其不同的属性值。例如,车辆信息,在查询表中需要记录车辆的车主,车辆的颜色,车辆的车牌号等不同属性的信息。但是查询表中的不同属性所使用的标记方式与用户输入的查询条件不同,因此,需要预先建立查询表的不同属性与不同查询条件间的对应关系,即为预设对象关系映射。这样,数据动态查询的装置在获取到结构化查询数据时,可以解析出结构化查询数据中的查询条件,进而根据预设对象关系映射,查找出查询条件对应的查询表中的属性,即为结构化查询数据对应查询属性。

进一步的,预设对象关系映射通过注解的方式标示出数据库中查询表的不同属性与不同查询条件间的对应关系。

步骤103、根据结构化查询数据,对查询属性进行数据查询,获取查询结果。

具体的,数据动态查询的装置在确定出查询属性后,可以根据数据化查询数据中的运算关系信息,查询条件的查询数据及查询条件间的组合关系,在查询表的查询属性中进行相应的查找,从而可以查找出查询结果,将此查询结果反馈至客户端,以便用户通过客户端获取相应的查询结果。

进一步的,结构化查询数据为至少一个JSON(JavaScript Object Notation,javascript对象表示法)表达式,且JSON表达式与查询条件间一一对应。

此时,根据结构化查询数据,对查询属性进行数据查询,获取查询结果包括:

利用JSON表达式,对查询属性进行数据查询,获取查询结果。

此时,数据动态查询的装置可以将JSON表达式转换为相应的可执行查询语句,例如SQL(Structured Query Language,结构化查询语言)语句,进行相应的数据查询。

进一步的,由于查询条件可以嵌套,即为查询条件的内容为另一个查询条件,因此获取的JSON表达式可以为嵌套式JSON表达式。

此时,利用JSON表达式,对查询属性进行数据查询,获取查询结果包括:

在JSON表达式为嵌套式JSON表达式时,利用递归方式解析JSON表达式,并根据解析出的JSON表达式,对查询属性进行数据查询,获取查询结果。

具体的,使用递归方式需处理三个问题:入口、处理过程和出口。在本发明实施例中,递归的入口可以将完整的查询条件抽象为一个顶层分组,以处理该分组作为递归入口;

处理过程:解析当前分组中的所有查询条件,递归循环解析子分组集合中的所有分组;

递归的出口为:在当前分组中不存在子分组时返回当前分组解析结果。

也就是说,使用递归方式的具体过程为:首先将完整的查询条件作为一个顶层分组,并以处理该顶层分组作为递归的入口。在确定出顶层分组后,可以解析当前顶层分组中的所有查询条件,若能解析出当前的查询条件内嵌套了一个查询条件,则可以将解析出的嵌套的查询条件作为一个子分组中的顶层分组,继续解析顶层分组的所有查询条件,直至递归循环解析出子分组集合中的所有分组。在当前分组中不存在子分组时返回当前分组解析结果。在子分组中的嵌套的查询条件返回解析结果后,数据动态查询的装置可以根据此解析结果计算分组中的查询条件的解析结果,直至计算出所有的最顶层分组的解析结果,将此结果作为查询结果。

这样一来,用户可以根据自己实现需求在客户端中生成结构化查询数据,并发送至数据动态查询的装置,以便数据动态查询的装置根据结构化查询数据进行相应的数据查询,用户在客户端生成结构化查询数据时,仅需根据自身的需求进行查询条件的设置,使得查询条件的增删扩展性较好,降低了维护成本。

进一步的,如图2所示,在上述步骤101之前,还包括:

步骤104、向查询客户端提供已存储的结构化查询数据。

具体的,由于某些结构化查询数据是用户常用的,因此,为了方便用户使用,可以将已存储的结构化查询数据在用户通过查询客户端自行输入结构化查询数据之前,可以提供给用户。此时,数据动态查询的装置可以将缓存中已存储的结构化查询数据通过查询客户端提供给用户。

将结构化查询数据发送至查询客户端反馈至用户后,用户可能使用此结构化查询数据,此时,可以直接将查询客户端反馈的结构化查询数据发送至数据动态查询的装置,无需自己输入。当然,用户也可能不使用此结构化查询数据,此时,用户需要在查询客户端中重新输入结构化查询数据。

此时,步骤101从查询客户端获取结构化查询数据包括:

接收查询客户端发送的结构化查询数据;确定是否存储有接收的结构化查询数据;在未存储接收的结构化查询数据,存储结构化查询数据。

即为,数据动态查询的装置在接收到结构化查询数据后,需要先确定下是否存储了此结构化查询数据,即为可以将接收的结构化查询数据与已存储的结构化查询数据进行匹配,查看是否有匹配项。若没有匹配项,则说明此结构化查询数据是用户重新输入的结构化查询数据,可以将其进行存储。若有匹配项,则说明此结构化查询数据并不是用户重新输入的结构化查询数据,已经存储了,无需重复存储。

这样一来,可以通过向查询客户端反馈已存储的结构化查询数据,使用户无需重新输入经常使用的结构化查询数据,从而增加了数据查询的易用性。

如图3所示,本发明实施例提供了一种数据动态查询的装置,包括:

获取单元301,用于从查询客户端获取结构化查询数据。

其中,结构化查询数据中包含有用户输入的查询条件、关系运算信息、查询条件的查询数据及查询条件间的组合关系。

确定单元302,用于根据结构化查询数据中的查询条件,及预设对象关系映射,确定结构化查询数据对应查询属性。

其中,预设对象关系映射是预先设置的,用于标示出数据库中查询表的不同属性与不同查询条件间的对应关系。

进一步的,预设对象关系映射通过注解的方式标示出数据库中查询表的不同属性与不同查询条件间的对应关系。

获取单元301,还用于根据结构化查询数据,对查询属性进行数据查询,获取查询结果。

进一步的,上述数据动态查询的装置,还包括:

处理单元303,用于向查询客户端提供已存储的结构化查询数据。

获取单元301,具体用于接收查询客户端发送的结构化查询数据;确定是否存储有接收的结构化查询数据;在未存储接收的结构化查询数据,存储结构化查询数据。

进一步的,结构化查询数据为至少一个JSON表达式;JSON表达式与查询条件一一对应。

获取单元301,具体用于利用JSON表达式,对查询属性进行数据查询,获取查询结果。

获取单元301,具体用于在JSON表达式为嵌套式JSON表达式时,利用递归方式解析JSON表达式,并根据解析出的JSON表达式,对查询属性进行数据查询,获取查询结果。

这样一来,用户可以根据自己实现需求在客户端中生成结构化查询数据,并发送至数据动态查询的装置,以便数据动态查询的装置根据结构化查询数据进行相应的数据查询,用户在客户端生成结构化查询数据时,仅需根据自身的需求进行查询条件的设置,使得查询条件的增删扩展性较好,降低了维护成本。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1