CN104714975A - 一种动态的查询语句处理方法及其装置 - Google Patents

一种动态的查询语句处理方法及其装置 Download PDF

Info

Publication number
CN104714975A
CN104714975A CN201310692599.5A CN201310692599A CN104714975A CN 104714975 A CN104714975 A CN 104714975A CN 201310692599 A CN201310692599 A CN 201310692599A CN 104714975 A CN104714975 A CN 104714975A
Authority
CN
China
Prior art keywords
mark
query
query statement
key word
expression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310692599.5A
Other languages
English (en)
Inventor
范钢
宋颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN201310692599.5A priority Critical patent/CN104714975A/zh
Publication of CN104714975A publication Critical patent/CN104714975A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种动态的查询语句处理方法和装置,其中方法包括:设置配置文件,所述配置文件用于定义查询语句所需的标注关键字,它应包含至少一个配置项,每个配置项包含标注关键字名称及其表达式;在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式;如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;通过以上处理从而得到新的查询语句。

Description

一种动态的查询语句处理方法及其装置
技术领域
本发明涉及数据库查询领域,具体而言,涉及一种动态的查询语句处理方法及其装置。
背景技术
目前市面上各个大型web(网络)系统、大型信息化管理系统都普遍存在大型数据库查询的需求,过去在进行数据库查询时通常都是写死在各个功能模块中。但随着软件技术的发展,越来越多的软件系统都尝试采用平台式开发,以期降低整体研发成本与研发周期。在这样一个整体背景下,各种通用查询方案孕育而生。在所有通用查询方案中几乎都无法绕过一个重要的技术课题,那就是对查询语句动态加入过滤条件。
通常在这类系统中对各类报表查询都要提供给用户输入过滤条件的功能。系统可能为用户提供许多过滤条件,但用户在某次使用中可能只使用一项或几项过滤条件。正因为如此,报表每次执行查询时的过滤条件都将不同。在这种情况下业界比较通行的做法是对每个查询报表都编写程序,判断用户到底使用了哪些过滤条件。被使用的条件加入到查询语句中,没有被使用的条件则被忽略。这种方法工作量较大,而且影响程序运行效率。
因此,如何提供一种数据查询方案,使程序开发人员得程序开发变得方便、快捷而又灵活,便成为本领域的技术人员亟待解决的问题。
发明内容
本发明提供了一种动态的查询语句处理方法和装置,用以对各类报表查询提供动态处理用户输入过滤条件的功能。
为了达到上述目的,本发明提供一种动态的查询语句处理方法,包括以下步骤:
步骤S100:设置配置文件,所述配置文件用于定义查询语句所需的标注关键字,它应包含至少一个配置项,每个配置项包含标注关键字名称及其表达式;
步骤S200:在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式;
步骤S300:如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除。通过以上处理从而得到新的查询语句。
较优地,所述步骤S200包括如下步骤:
步骤S210:本方法要求客户应预先对原有查询语句进行标注,所述标注写在原有查询语句最外层的where子句部分,所述标注包括标注符号、过滤条件字段名称和标注关键字。同时,本方法要求客户传递的参数集应当是以变量名+变量值的形成传递的名-值对;
步骤S220:根据查询语句中的标注搜索标注关键字,如果搜索到某个标注与某个标注关键字匹配,则从所述配置文件中找出对应的标注关键字名称及其查询表达式。
较优地,所述步骤S300包括如下步骤:
步骤S310:检查标注关键字对应的标注是否存在于查询参数集中,如果存在则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,
步骤320:如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;
步骤330:经过所述处理,最终形成新的查询语句及参数集,提交查询模块执行查询。
另外,本发明还提供一种动态的查询语句处理装置,其特征在于,包括:
配置文件设置模块,用于设置配置文件,所述配置文件用于定义查询语句所需的标注关键字,包含至少一个配置项,每个配置项包含标注关键字名称及其表达式;
关键字搜索模块,用于在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式;
查询语句处理模块,如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;通过以上处理从而得到新的查询语句。
进一步地,所述关键字搜索模块具体用于执行以下步骤:
接受客户预先对原有查询语句进行标注,所述标注写在原有查询语句最外层的where子句部分,所述标注包括标注符号、过滤条件字段名称和标注关键字;同时,客户所传递的参数集是以变量名+变量值的形成传递的名-值对;
根据查询语句中的标注搜索标注关键字,如果搜索到某个标注与某个标注关键字匹配,则从所述配置文件中找出对应的标注关键字名称及其查询表达式。
进一步地,所述查询语句处理模块具体用于执行以下步骤:
检查标注关键字对应的标注是否存在于查询参数集中,如果存在则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式;
如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;
经过所述处理,最终形成新的查询语句及参数集,提交查询模块执行查询。
本发明为开发人员实现查询报表的过滤查询功能提供了便捷、易用与灵活的功能支持,它与其它同类型的动态查询语句处理方法与装置比较,其优势在于:
1)采用了在查询语句中标注的形式,使开发人员只需在查询语句中标注而无需编写任何其它程序就可以实现过滤查询功能,
2)当系统在维护与更新过程中需要添加新的过滤条件时,只需要在查询语句中添加新的标注,并保证前端提交时加入新的参数变量,就可以完成以上功能,非常简便、易用。
3)本发明的标注关键字采用了开放的设计,开发人员可以根据自己的需要,方便、快捷地添加新的标注关键字。
4)本发明可以应用于开发工具或开发平台中,也可以作为独立的装置为其它系统使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例的动态的查询语句处理方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的着眼点是为开发人员提供方便、快捷而又灵活的数据查询方案。通常在各个大型web系统、大型信息化管理系统都普遍存在大型数据库查询的需求,并对各类报表查询提供用户输入过滤条件的功能。在这些查询报表中,系统可能为用户提供了许多过滤条件,但用户在某次使用中可能只使用一项或几项过滤条件。正因为如此,报表每次执行查询时的过滤条件都将不一样,这次查询只使用了这些过滤条件,而另一次查询则使用另一些过滤条件。
本发明提供了一个更加简便的解决方案,它不需要开发人员为每个查询报表专门设计查询过滤条件判断程序,而仅仅是在查询语句中加入相应的标注。
假如查询语句是“select*from t1where xxx=:x1and yyy>=:y1and yyy<=:y2”,其中“xxx=:x1”和“yyy>=:y1and yyy<=:y2”是需要动态加入的过滤条件。用户在某次查询的时候只输入了x1,则真正执行查询的语句是“select*from t1where xxx=:x1”;用户在另一次查询的时候输入了y1和y2,则查询语句是“select*from t1where yyy>=:y1and yyy<=:y2”。为了实现以上需求,开发人员在使用本发明的时候只需要对查询语句进行如下标注:
select*from t1where:xxxEquals:yyyLower:yyyUpper
在该查询语句中,:xxxEquals:yyyLower:yyyUpper都是本发明可以识别的标注。这些标注由“标注符号+过滤条件字段名称+标注关键字”组成,标注符号即此处的冒号,过滤条件字段名称即该标注最终转换为查询条件表达式时使用的数据库字段名称,标注关键字即此处的Equals、Lower、Upper。
如果业务系统使用了本发明,则由查询模块调用并传递给本发明带标注的查询语句及查询参数集。本发明对所有的标注首先识别是否在查询参数集中存在,如果存在说明该条件被使用,将其转换为查询表达式;如果不存在则说明该条件未被使用,将该标注从查询语句中去掉。
在将标注转换为查询表达式的过程中,首先识别标注关键字。标注关键字被定义在标注的末尾。如标注为:xxxEquals,其标注关键字是Equals,过滤条件字段名称是xxx,则将其转换为查询表达式“xxx=:xxxEquals”。
在本发明中每个标注关键字都对应一个查询表达式,开发人员也可以定义自己的关键字。定义标注关键字使用一个配置文件进行如下配置:
<?xml version="1.0"encoding="UTF-8"?>
<beans>
<bean key="Equals"><![CDATA[:property=:value]]></bean>
<bean key="Lower"><![CDATA[:property>=:value]]></bean>
<bean key="Upper"><![CDATA[:property<=:value]]></bean>
<bean key="Unequal"><![CDATA[:property!=:value]]></bean>
<bean key="Smaller"><![CDATA[:property>:value]]></bean>
<bean key="Greater"><![CDATA[:property<:value]]></bean>
</beans>
定义每个关键字包括定义关键字名称(如key="Equals")和定义查询表达式(如:property=:value),则本发明在进行转换的时候,将:property转换为过滤条件字段名称,将:value转换为过滤参数变量名。
经过本发明处理过的查询语句将变为形如这样的语句:
select*from t1where xxx=:x1
需要经过其它参数化转换,将其转换为JDBC可以识别的查询语句。
以下结合具体实施例对本发明进行详细阐述。
请参阅图1,图1为本发明一个实施例的动态的查询语句处理方法的流程图。该方法包括以下步骤:
步骤S100:设置配置文件,所述配置文件用于定义查询语句所需的标注关键字,它应包含至少一个配置项,每个配置项包含标注关键字名称及其表达式;
步骤S200:在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式;
步骤S300:如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除。通过以上处理从而得到新的查询语句。
较优地,所述步骤S200包括如下步骤:
步骤S210:本方法要求客户应预先对原有查询语句进行标注,所述标注写在原有查询语句最外层的where子句部分,所述标注包括标注符号、过滤条件字段名称和标注关键字。同时,本方法要求客户传递的参数集应当是以变量名+变量值的形成传递的名-值对;
步骤S220:根据查询语句中的标注搜索标注关键字,如果搜索到某个标注与某个标注关键字匹配,则从所述配置文件中找出对应的标注关键字名称及其查询表达式。
较优地,所述步骤S300包括如下步骤:
步骤S310:检查标注关键字对应的标注是否存在于查询参数集中,如果存在则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,
步骤320:如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;
步骤330:经过所述处理,最终形成新的查询语句及参数集,提交查询模块执行查询。
以下是本发明在具体实施时的一个案例。
首先,用户定义自己的标注关键字,并将其配置在配置文件中,内容如下:
<?xml version="1.0"encoding="UTF-8"?>
<beans>
<bean key="Equals"><![CDATA[:property=:value]]></bean>
<bean key="Lower"><![CDATA[:property>=:value]]></bean>
<bean key="Upper"><![CDATA[:property<=:value]]></bean>
<bean key="Unequal"><![CDATA[:property!=:value]]></bean>
<bean key="Smaller"><![CDATA[:property>:value]]></bean>
<bean key="Greater"><![CDATA[:property<:value]]></bean>
</beans>
配置文件中定义标注关键字时,应当定义关键字的名称(如语句key="Equals",Equals就是定义的关键字的名称)与表达式(如:property=:value,其中,:property代表过滤条件中的字段名称,:value代表查询表达式中的查询变量,通过这种方式几乎可以表达所有复杂表达式)。
当系统启动时就会将配置文件中定义的所有标注关键字加载到服务器内存中。当用户输入过滤条件并提交查询申请时(此时查询语句包含这样的标注信息:select*from t1where:xxxEquals:yyyLower:yyyUpper,标注符号是冒号,过滤条件字段名称xxx或yyy即该标注最终转换为查询条件表达式时使用的数据库字段名称,标注关键字是Equals、Lower、Upper),系统应当将用户输入过滤条件的变量及其值,以Map(计算机命令)的形式传递给后台(如:{xxxEquals=10000})。后台通过查询语句配置文件(数据库或者Java程序)获取查询语句,调用本方法及装置,将查询语句与查询参数集作为参数传递过来。
进一步地,本方法及装置从参数集合Map中寻找查询语句中的标注在该集合中是否存在。具体实施时,将原有查询语句中的标注名与限定参数对应的标注关键字依次进行比较,查找其是否有相应的标注关键字予以匹配;如果匹配则表示用户使用了该过滤条件,将标注转换成表达式,如果该例中查询语句中的标注关键字Equals与限定参数对应的标注关键字匹配,则将标注:xxxEquals转换成对应表达式xxx=:xxxEquals,假如开发人员希望表达式是t1.xxx=:xxxEquals,则将该标注以及传递的变量名写为t1.xxx即可。
如果标注在参数集合Map中不存在,表示执行此次查询的用户未使用该过滤条件,则将该标注从查询语句中去除,如本例的标注:yyyLower与:yyyUpper。这样,此次执行查询时就不会使用该过滤条件。
进一步地,经过本发明的处理过程,原查询语句就由有标注的动态查询语句,转换成有标注的静态查询语句,如:
select*from t1where xxx=:xxxEquals
进一步地,对于用户此次查询使用的过滤条件,将相应标注转换为查询表达式,其转换过程如下:
将标注名末尾与之前定义的标注关键字依次进行比较,查找是否有相应的标注关键字予以匹配。查找到匹配的关键字后,将标注改为对于的表达式,将表达式中的:property替换为过滤条件的字段名称,将:value替换为该变量,如:
标注为:xxxEquals,过滤条件字段名称为xxx,关键字是Equals,对应的表达式是:property=:value,则将该标注转换为表达式xxx=:xxxEquals。这时的:xxxEquals就不再是本方法及装置使用的标注了,而是查询语句的变量名。
经过本发明的处理后,还需要经过其它参数化转换,将其转换为JDBC可以识别的查询语句。
下面是本发明在具体实施时的另一个案例。
查询语句是“select*from t1where xxx=:x1and yyy>=:y1and yyy<=:y2”,其中“xxx=:x1”和“yyy>=:y1and yyy<=:y2”是需要动态加入的过滤条件。用户在某次查询的时候只输入了x1,则真正执行查询的语句是“select*from t1where xxx=:x1”;用户在另一次查询的时候输入了y1和y2,则查询语句是“select*from t1where yyy>=:y1and yyy<=:y2”。
为了实现以上需求,开发人员在使用本发明的时候只需要对查询语句进行如下标注:
select*from t1where:xxxEquals:yyyLower:yyyUpper
在该查询语句中,:xxxEquals:yyyLower:yyyUpper都是本发明可以识别的标注,标注符号即此处的冒号,过滤条件字段名称xxx与yyy即该标注最终转换为查询条件表达式时使用的数据库字段名称,标注关键字即此处的Equals、Lower、Upper。
如果业务系统使用了本发明,则由查询模块调用并传递给本发明带标注的查询语句及查询参数集。本发明对所有的标注首先识别是否在查询参数集中存在,如果存在说明该条件被使用,将其转换为查询表达式;如果不存在则说明该条件未被使用,将该标注从查询语句中去掉。
在将标注转换为查询表达式的过程中,首先识别标注关键字。标注关键字被定义在标注的末尾。如标注为:xxxEquals,其标注关键字是Equals,过滤条件字段名称是xxx,则将其转换为查询表达式“xxx=:xxxEquals”。
在本发明中每个标注关键字都对应一个查询表达式,开发人员定义自己的关键字时使用一个配置文件进行如下配置:
<?xml version="1.0"encoding="UTF-8"?>
<beans>
<bean key="Equals"><![CDATA[:property=:value]]></bean>
<bean key="Lower"><![CDATA[:property>=:value]]></bean>
<bean key="Upper"><![CDATA[:property<=:value]]></bean>
<bean key="Unequal"><![CDATA[:property!=:value]]></bean>
<bean key="Smaller"><![CDATA[:property>:value]]></bean>
<bean key="Greater"><![CDATA[:property<:value]]></bean>
</beans>
程序中定义标注关键字时,应当定义关键字的名称(如语句key="Equals",Equals就是定义的关键字的名称)与表达式(如:property=:value,其中,:property代表过滤条件中的字段名称,:value代表查询表达式中的查询变量)。则本发明在进行转换的时候,将:property转换为过滤条件字段名称,将:value转换为过滤参数变量名。
用户在某次查询的时候输入了x1,经过本发明处理过的查询语句将变为这样的语句:
select*from t1where xxx=:x1
经过其它参数化转换,还需要经过其它参数化转换,将其转换为JDBC可以识别的查询语句。
另外,本发明还提供一种动态的查询语句处理装置,其特征在于,包括:
配置文件设置模块,用于设置配置文件,所述配置文件用于定义查询语句所需的标注关键字,包含至少一个配置项,每个配置项包含标注关键字名称及其表达式;
关键字搜索模块,用于在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式;
查询语句处理模块,如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;通过以上处理从而得到新的查询语句。
进一步地,所述关键字搜索模块具体用于执行以下步骤:
接受客户预先对原有查询语句进行标注,所述标注写在原有查询语句最外层的where子句部分,所述标注包括标注符号、过滤条件字段名称和标注关键字;同时,客户所传递的参数集是以变量名+变量值的形成传递的名-值对;
根据查询语句中的标注搜索标注关键字,如果搜索到某个标注与某个标注关键字匹配,则从所述配置文件中找出对应的标注关键字名称及其查询表达式。
进一步地,所述查询语句处理模块具体用于执行以下步骤:
检查标注关键字对应的标注是否存在于查询参数集中,如果存在则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式;
如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;
经过所述处理,最终形成新的查询语句及参数集,提交查询模块执行查询。
本发明为开发人员实现查询报表的过滤查询功能提供了便捷、易用与灵活的功能支持,它与其它同类型的动态查询语句处理方法与装置比较,其优势在于:
1)采用了在查询语句中标注的形式,使开发人员只需在查询语句中标注而无需编写任何其它程序就可以实现过滤查询功能,
2)当系统在维护与更新过程中需要添加新的过滤条件时,只需要在查询语句中添加新的标注,并保证前端提交时加入新的参数变量,就可以完成以上功能,非常简便、易用。
3)本发明的标注关键字采用了开放的设计,开发人员可以根据自己的需要,方便、快捷地添加新的标注关键字。
4)本发明可以应用于开发工具或开发平台中,也可以作为独立的装置为其它系统使用。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

Claims (6)

1.一种动态的查询语句处理方法,其特征在于,包括以下步骤:
设置配置文件,所述配置文件用于定义查询语句所需的标注关键字,包含至少一个配置项,每个配置项包含标注关键字名称及其表达式;
在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式;
如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;通过以上处理从而得到新的查询语句。
2.根据权利要求1所述的动态的查询语句处理方法,其特征在于,在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式包含以下步骤:
接受客户预先对原有查询语句进行标注,所述标注写在原有查询语句最外层的where子句部分,所述标注包括标注符号、过滤条件字段名称和标注关键字;同时,客户所传递的参数集是以变量名+变量值的形成传递的名-值对;
根据查询语句中的标注搜索标注关键字,如果搜索到某个标注与某个标注关键字匹配,则从所述配置文件中找出对应的标注关键字名称及其查询表达式。
3.根据权利要求1所述的动态的查询语句处理方法,其特征在于,如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;通过以上处理从而得到新的查询语句步骤包含以下步骤:
检查标注关键字对应的标注是否存在于查询参数集中,如果存在则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式;
如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;
经过所述处理,最终形成新的查询语句及参数集,提交查询模块执行查询。
4.一种动态的查询语句处理装置,其特征在于,包括:
配置文件设置模块,用于设置配置文件,所述配置文件用于定义查询语句所需的标注关键字,包含至少一个配置项,每个配置项包含标注关键字名称及其表达式;
关键字搜索模块,用于在接收到客户传递过来的查询语句及参数集后,根据查询语句中的标注搜索标注关键字,并从所述配置文件中找出对应的标注关键字名称及其查询表达式;
查询语句处理模块,如果标注关键字对应的标注存在于查询参数集中,则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式,如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;通过以上处理从而得到新的查询语句。
5.根据权利要求4所述的动态的查询语句处理装置,其特征在于,所述关键字搜索模块具体用于执行以下步骤:
接受客户预先对原有查询语句进行标注,所述标注写在原有查询语句最外层的where子句部分,所述标注包括标注符号、过滤条件字段名称和标注关键字;同时,客户所传递的参数集是以变量名+变量值的形成传递的名-值对;
根据查询语句中的标注搜索标注关键字,如果搜索到某个标注与某个标注关键字匹配,则从所述配置文件中找出对应的标注关键字名称及其查询表达式。
6.根据权利要求4所述的动态的查询语句处理装置,其特征在于,所述查询语句处理模块具体用于执行以下步骤:
检查标注关键字对应的标注是否存在于查询参数集中,如果存在则根据所确定的标注关键字名称及其查询表达式对原有查询语句进行替换,将原有查询语句中所匹配的标注转换为查询表达式;
如果标注关键字对应的标注不存在于查询参数集中,则将原有查询语句中该标注去除;
经过所述处理,最终形成新的查询语句及参数集,提交查询模块执行查询。
CN201310692599.5A 2013-12-17 2013-12-17 一种动态的查询语句处理方法及其装置 Pending CN104714975A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310692599.5A CN104714975A (zh) 2013-12-17 2013-12-17 一种动态的查询语句处理方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310692599.5A CN104714975A (zh) 2013-12-17 2013-12-17 一种动态的查询语句处理方法及其装置

Publications (1)

Publication Number Publication Date
CN104714975A true CN104714975A (zh) 2015-06-17

Family

ID=53414318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310692599.5A Pending CN104714975A (zh) 2013-12-17 2013-12-17 一种动态的查询语句处理方法及其装置

Country Status (1)

Country Link
CN (1) CN104714975A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760344A (zh) * 2020-07-06 2021-12-07 北京沃东天骏信息技术有限公司 动态配置的方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321235B1 (en) * 1998-09-29 2001-11-20 International Business Machines Corporation Global caching and sharing of SQL statements in a heterogeneous application environment
CN101425117A (zh) * 2008-12-09 2009-05-06 阿里巴巴集团控股有限公司 一种构造sql语句的方法及装置
US7664730B2 (en) * 2003-09-06 2010-02-16 Oracle International Corporation Method and system for implementing a SQL profile
CN102799644A (zh) * 2012-06-28 2012-11-28 用友软件股份有限公司 基于元数据的数据库动态查询系统和数据库动态查询方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321235B1 (en) * 1998-09-29 2001-11-20 International Business Machines Corporation Global caching and sharing of SQL statements in a heterogeneous application environment
US7664730B2 (en) * 2003-09-06 2010-02-16 Oracle International Corporation Method and system for implementing a SQL profile
CN101425117A (zh) * 2008-12-09 2009-05-06 阿里巴巴集团控股有限公司 一种构造sql语句的方法及装置
CN102799644A (zh) * 2012-06-28 2012-11-28 用友软件股份有限公司 基于元数据的数据库动态查询系统和数据库动态查询方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
余正涛 等: ""受限领域自然语言数据库查询接口研究"", 《昆明理工大学学报-理工版》 *
蒋冠雄 等: ""一种支持模糊查询的LINQ动态查询方法"", 《计算机时代》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760344A (zh) * 2020-07-06 2021-12-07 北京沃东天骏信息技术有限公司 动态配置的方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US6757678B2 (en) Generalized method and system of merging and pruning of data trees
Antoniol et al. Using metrics to identify design patterns in object-oriented software
CN103744891A (zh) 一种数据查询方法和系统
CN104978194B (zh) 一种网页前端开发方法及装置
US20060015843A1 (en) Semantic system for integrating software components
CN110489087B (zh) 一种生成分形结构的方法、装置、介质和电子设备
CN110866029B (zh) sql语句构建方法、装置、服务器及可读存储介质
CN111159177B (zh) 一种基于异构数据的数据融合方法、装置、设备及介质
CN115016784B (zh) 低代码应用复用方法、应用解析系统、设备及存储介质
CN110083749A (zh) 用于软件快速开发的检索、复用、环境搭建的系统及方法
CN108319466A (zh) 一种配置信息的恢复方法和装置
CN101145164B (zh) 一种序时簿的查询方法及一种序时簿的查询装置
CN104714973A (zh) 一种处理查询语句的方法和装置
CN111858355B (zh) 测试案例处理方法及装置、计算机设备及可读存储介质
Szekely et al. Exploiting semantics of web services for geospatial data fusion
CN104714975A (zh) 一种动态的查询语句处理方法及其装置
Raţiu et al. Taming cross-tool traceability in the wild
CN102053972A (zh) Etl模块间父任务关系的获取方法和装置
Le Zou et al. On synchronizing with web service evolution
Bafna et al. Review on study and usage of MERN stack for web development
US7283989B1 (en) System and method for use of application metadata
CN112989029A (zh) 知识图谱可视化快速检索实现方法、系统、装置及介质
Mou et al. Visual orchestration and autonomous execution of distributed and heterogeneous computational biology pipelines
Aksoy et al. MATAWS: A multimodal approach for automatic WS semantic annotation
Ubels Understanding abstract geo-information workflows and converting them to executable workflows using Semantic Web technologies

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150617