基于ANTLR的URL查询字符串转数据库查询语句的方法及装置[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202111552291.1
(22)申请日 2021.12.17
(71)申请人 武汉众智数字技术有限公司
地址 430074 湖北省武汉市东湖新技术开
发区珞喻路546号
(72)发明人 王频 刘树惠 
(74)专利代理机构 北京汇泽知识产权代理有限
公司 11228
代理人 秦曼妮
(51)Int.Cl.
G06F  8/41(2018.01)
G06F  40/253(2020.01)
G06F  40/289(2020.01)
G06F  16/242(2019.01)
G06F  16/2453(2019.01)
(54)发明名称
基于ANTLR的URL查询字符串转数据库查询
语句的方法及装置
(57)摘要
本发明提供了一种基于ANTLR的URL查询字
符串转数据库查询语句的方法及装置,该方法包
括以下步骤:根据GA/T  1400标准中规定的查询
字符串定义对查询字符串进行解析的词法结构,
其中包含对GA/T  1400标准中规定的运算符定义
对应的词法;通过ANTLR工具根据定义的词法结
构生成对应的词法分析器;获取URL中的查询字
符串并输入词法分析器,词法分析器将URL中的
查询字符串解析为对应的词法树,其中将运算符
生成对应的谓词结构;将词法分析器解析出来的
词法树转换为对应的谓词表达式,并生成对应的
查询语法树;根据数据库类型将查询语法树转换
为对应数据库的查询语句。本发明支持将URL查
询字符串直接转换为对应数据库的查询语句。权利要求书1页  说明书5页  附图3页CN 114237618 A 2022.03.25
C N  114237618
A
1.一种基于ANTLR的URL查询字符串转数据库查询语句的方法,其特征在于,包括以下步骤:
根据GA/T  1400标准中规定的查询字符串定义对查询字符串进行解析的词法结构,其中包含对GA/T  1400标准中规定的运算符定义对应的词法;
通过ANTLR工具根据定义的词法结构生成对应的词法分析器;
获取URL中的查询字符串并输入词法分析器,词法分析器将URL中的查询字符串解析为对应的词法树,其中将运算符生成对应的谓词结构;
将词法分析器解析出来的词法树转换为对应的谓词表达式,并生成对应的查询语法树;
根据数据库类型将查询语法树转换为对应数据库的查询语句。
2.如权利要求1所述的基于ANTLR的URL查询字符串转数据库查询语句的方法,其特征在于:定义词法结构时还根据URL查询字符串中的“&”符号定义对应的词法。
3.如权利要求1所述的基于ANTLR的URL查询字符串转数据库查询语句的方法,其特征在于:所述GA/T  1400标准中规定的运算符包括算数运算符、逻辑运算符、比较运算符及约定的变量名。
4.如权利要求1所述的基于ANTLR的URL查询字符串转数据库查询语句的方法,其特征在于:所述将词法分析器解析出来的词法树转换为对应的谓词表达式时采用遍历词法树的方式进行。
5.如权利要求1所述的基于ANTLR的URL查询字符串转数据库查询语句的方法,其特征在于:所述URL中的查询字符串为HTTP请求中的Query  String字符串。
6.一种基于ANTLR的URL查询字符串转数据库查询语句的装置,其特征在于,包括:
词法结构定义模块,用于根据GA/T  1400标准中规定的查询字符串定义对查询字符串进行解析的词法结构,其中包含对GA/T  1400标准中规定的运算符定义对应的词法;
词法分析器生成模块,用于通过ANTLR工具根据定义的词法结构生成对应的词法分析器;
查询字符串解析模块,用于获取URL中的查询字符串并输入词法分析器,词法分析器将URL中的查询字符串解析为对应的词法树,其中将运算符生成对应的谓词结构;
查询语法树生成模块,用于将词法分析器解析出来的词法树转换为对应的谓词表达式,并生成对应的查询语法树;
数据库查询语句转换模块,用于根据数据库类型将查询语法树转换为对应数据库的查询语句。
7.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1‑7任一所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1‑7任一所述方法的步骤。
权 利 要 求 书1/1页CN 114237618 A
基于ANTLR的URL查询字符串转数据库查询语句的方法及装置
技术领域
[0001]本发明涉及数据库查询领域,尤其涉及一种基于ANTLR的URL查询字符串转数据库查询语句的方法及装置。
背景技术
[0002]在GA/T 1400标准中定义的视频图像信息应用系统的查询条件字符串解析器需要支持算数运算符、逻辑运算符、比较运算符及约定的变量名,而标准的查询条件字符串解析器不支持这些符号的解析,因此需要专门的系统将查询条件字符串解析出来,并转换成数据库对应的查询语句。
发明内容
[0003]为解决现有技术存在的上述至少部分问题,本发明提供一种基于ANTLR的 URL查询字符串转数据库查询语句的方法及装置。
[0004]本发明是这样实现的:
[0005]第一方面,本发明提供一种基于ANTLR的URL查询字符串转数据库查询语句的方法,包括以下步骤:
[0006]根据GA/T 1400标准中规定的查询字符串定义对查询字符串进行解析的词法结构,其中包含对GA/T 1400标准中规定的运算符定义对应的词法;
[0007]通过ANTLR工具根据定义的词法结构生成对应的词法分析器;
[0008]获取URL中的查询字符串并输入词法分析器,词法分析器将URL中的查询字符串解析为对应的词法树,其中将运算符生成对应的谓词结构;
[0009]将词法分析器解析出来的词法树转换为对应的谓词表达式,并生成对应的查询语法树;
[0010]根据数据库类型将查询语法树转换为对应数据库的查询语句。
[0011]进一步地,定义词法结构时还根据URL查询字符串中的“&”符号定义对应的词法。[0012]进一步地,所述GA/T 1400标准中规定的运算符包括算数运算符、逻辑运算符、比较运算符及约定的变量名。
[0013]进一步地,所述将词法分析器解析出来的词法树转换为对应的谓词表达式时采用遍历词法树的方式进行。
[0014]进一步地,所述URL中的查询字符串为HTTP请求中的Query String字符串。[0015]第二方面,本发明还提供一种基于ANTLR的URL查询字符串转数据库查询语句的装置,包括:
[0016]词法结构定义模块,用于根据GA/T 1400标准中规定的查询字符串定义对查询字符串进行解析的
词法结构,其中包含对GA/T 1400标准中规定的运算符定义对应的词法;[0017]词法分析器生成模块,用于通过ANTLR工具根据定义的词法结构生成对应的词法分析器;
[0018]查询字符串解析模块,用于获取URL中的查询字符串并输入词法分析器,词法分析器将URL中的查询字符串解析为对应的词法树,其中将运算符生成对应的谓词结构;[0019]查询语法树生成模块,用于将词法分析器解析出来的词法树转换为对应的谓词表达式,并生成对应的查询语法树;
[0020]数据库查询语句转换模块,用于根据数据库类型将查询语法树转换为对应数据库的查询语句。
[0021]第三方面,本发明还提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一所述方法的步骤。
[0022]第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
[0023]与现有技术相比,本发明具有以下有益效果:
[0024]本发明提供的这种基于ANTLR的URL查询字符串转数据库查询语句的方法及装置,能够支持GA/T标准定义的查询指令,解析GA/T标准定义的运算符,并兼容普通的查询条件,支持将URL查询字符串直接转换为对应数据库的查询语句。
附图说明
[0025]图1为本发明实施例提供的一种基于ANTLR的URL查询字符串转数据库查询语句的方法的流程图;
[0026]图2为本发明实施例提供的一种基于ANTLR的URL查询字符串转数据库查询语句的方法详细流程图;
[0027]图3为本发明实施例提供的一种基于ANTLR的URL查询字符串转数据库查询语句的装置的方框图。
具体实施方式
[0028]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0029]如图1和图2所示,本发明实施例提供一种基于ANTLR的URL查询字符串转数据库查询语句的方法,包括以下步骤:
[0030]S101、根据GA/T 1400标准中规定的查询字符串定义对查询字符串进行解析的词法结构,其中包含对GA/T 1400标准中规定的运算符定义对应的词法。
[0031]GA/T 1400标准中包括查询指令规范,其中定义了查询字符串的各种属性、值以及运算符,其中GA/T 1400标准定义的运算符包括算数运算符、逻辑运算符、比较运算符及约定的变量名,根据GA/T 1400标准中定义的查询字符串的这些属性、值以及运算符定义对应的词法并形成词法文件方便后续生成词法分析器。
[0032]优选地,定义词法结构时还根据URL查询字符串中的“&”符号定义对应的词法。因
为GA/T1400标准中没有定义“&”符号,这里增加“&”符号使得对查询字符串的兼容性更强。[0033]S102、通过ANTLR工具根据定义的词法结构生成对应的词法分析器。
[0034]ANTLR工具是根据定义的词法结构编译对应的词法分析程序的编程工具,只需要将词法文件导入ANTLR工具即可生成对应的词法分析程序,即词法分析器,通过词法分析器可以对查询字符串中的对象进行解析拆分。
[0035]S103、获取URL中的查询字符串并输入词法分析器,词法分析器将URL中的查询字符串解析为对应的词法树,其中将运算符生成对应的谓词结构。
[0036]该过程是对查询字符串进行解析拆分的过程,词法分析器将查询字符串进行分词。
[0037]在一个实施例中,所述URL中的查询字符串为HTTP请求中的Query String字符串。
[0038]S104、将词法分析器解析出来的词法树转换为对应的谓词表达式,并生成对应的查询语法树。
[0039]例如对于查询字符串a=2,词法分析器将该查询字符串进行分词,语法分析其器根据分词情况,进行谓词表达式构造(比如a=2,把a识别成查询的属性,=识别成比较操作符,2识别成数字2),解析谓词表达式的同时,构造语法分析树。
[0040]优选地,所述将词法分析器解析出来的词法树转换为对应的谓词表达式时采用遍历词法树的方式进行。
[0041]S105、根据数据库类型将查询语法树转换为对应数据库的查询语句。
[0042]下面通过一个具体的例子对上述的方法进行详细说明。
[0043]URL查询字符串为:PageRecordNum=25&RecordStartNo=0&APS.Name like'%测试%'&(APS.DeviceID=123AND APS.IsOnline is null AND(not APS.IsOnline is null)or(APS.IsOnline!=nullANDAPS.a=null));
[0044]词法分析器将查询字符串解析为对应的词法树;
[0045]由对应的词法树生成谓词表达式如下:
[0046]

本文发布于:2024-09-22 18:24:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/407386.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   词法   字符串   对应
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议