一种基于AST的抽象语义拆解分析方法、装置及电子设备制造方法及图纸

技术编号:32462176 阅读:20 留言:0更新日期:2022-02-26 08:53
本发明专利技术公开了一种基于AST的抽象语义拆解分析方法,所述方法包括:获取前端发送的查询请求;将所述查询请求中的select请求体封装成语法树;基于语法对应表解析所述语法树得到对应的SQL条件树;将所述SQL条件树拼接成对应的SQL语句。SQL语句。SQL语句。

【技术实现步骤摘要】
一种基于AST的抽象语义拆解分析方法、装置及电子设备


[0001]本申请涉及数据库领域,尤其涉及一种基于AST的抽象语义拆解分析方法、装置及电子设备。

技术介绍

[0002]目前如果要做不同业务场景的多条件查询,需要开发人员将多条件查询语句写死在项目代码中,工作冗长且繁琐,每一次的业务迭代都需要手动进行修改。
[0003]而且现在的查询只能实现单种数据引擎的语法查询,如果业务新增多种其他数据引擎,则需要开发人员根据新的语法去重新冗余一份相似的代码。

技术实现思路

[0004]本申请实施例要解决的技术问题,在于提供一种基于AST的抽象语义拆解分析方法、装置及电子设备,以解决业务新增多种其他数据引擎的时候需要开发人员根据新的语法去重新冗余一份相似代码的技术问题。
[0005]为实现上述目的,本申请实施例采用下述技术方案:第一方面,本申请实施例提供一种基于AST的抽象语义拆解分析方法,所述方法包括:获取前端发送的查询请求;将所述查询请求中的select请求体封装成语法树;基于语法对应表解析所述语法树得到对应的SQL条件树;将所述SQL条件树拼接成对应的SQL语句。
[0006]第二方面,本申请实施例提供一种基于AST的抽象语义拆解分析装置,所述装置包括:第一获取单元,用于获取前端发送的查询请求;第一封装单元,用于将所述查询请求中的select请求体封装成语法树;第一解析单元, 用于基于语法对应表解析所述语法树得到对应的SQL条件树;第一拼接单元,用于将所述SQL条件树拼接成对应的SQL语句。
[0007]第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器执行以实现如上述第一方面所述的基于AST的抽象语义拆解分析方法。
[0008]第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器执行以实现如上述第一方面所述的基于AST的抽象语义拆解分析方法。
[0009]本申请实施例的有益效果是:本申请实施例提供一种基于AST的抽象语义拆解分
析方法、装置及电子设备,运用自定义语法、抽象语法树、语义解析引擎较准确的整合前端回传的请求并封装成模块化的语法包,从而使得不同用户、不同场景下都能将前端回传的参数解析成泛用性语法,极大的减少了开发人员的工作量。
附图说明
[0010]图1为本申请一个实施例提供的一种基于AST的抽象语义拆解分析方法的流程示意图;图2为本申请一个实施例提供的将查询请求中的select请求体封装成语法树方法的流程示意图;图3为本申请一个实施例提供的一种基于AST的抽象语义拆解分析装置的结构示意图;图4为本申请一个实施例提供的一种电子设备的结构示意图。
具体实施方式
[0011]下面通过具体实施例,并结合附图,对本申请的技术方案作进一步的具体描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0012]本申请提供一种基于AST的抽象语义拆解分析方法、装置及电子设备,以解决业务新增多种其他数据引擎的时候需要开发人员根据新的语法去重新冗余一份相似代码的技术问题。
[0013]以下结合附图,详细说明本申请中各实施例提供的技术方案。
[0014]请参阅附图1,其示出了本申请一个实施例提供的一种基于AST的抽象语义拆解分析方法的流程示意图,所述方法包括:S101,获取前端发送的查询请求;S102,将所述查询请求中的select请求体封装成语法树;S103,基于语法对应表解析所述语法树得到对应的SQL条件树;S104,将所述SQL条件树拼接成对应的SQL语句。
[0015]在一个实施例中,请参阅附图2,其示出了本申请一个实施例提供的将查询请求中的select请求体封装成语法树方法的流程示意图,包括:S201,获取所述查询请求中的select语句;S202,将所述select语句解析生成所述select请求体;S203,解析所述select请求体获得至少一个比较表达式,其中,所述至少一个比较表达式作为叶子节点得到所述语法树。
[0016]在一个实施例中,基于语法对应表对所述语法树的每一个所述叶子节点进行解析,得到每一个所述叶子节点对应的SQL表达式,基于所述SQL表达式替换所述叶子节点的比较表达式得到所述SQL条件树。
[0017]在一个实施例中,所述方法还包括:将所述SQL语句发送至对应的数据库中进行查询获得查询结果,将所述查询结果返回至前端。
[0018]请参阅附图3,其示出了本申请一个实施例提供的一种基于AST的抽象语义拆解分析装置的结构示意图,所述装置包括:第一获取单元301,用于获取前端发送的查询请求;第一封装单元302,用于将所述查询请求中的select请求体封装成语法树;第一解析单元303, 用于基于语法对应表解析所述语法树得到对应的SQL条件树;第一拼接单元304,用于将所述SQL条件树拼接成对应的SQL语句。
[0019]请参阅附图4,其示出了本申请一个实施例提供的一种电子设备的结构示意图,可以包括:至少一个网络接口402、存储器403和至少一个处理器401。电子设备中的各个组件通过总线系统404耦合在一起。可以理解,总线系统404用于实现这些组件之间的连接通信。总线系统404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,但是为了清楚说明起见,在附图4中将各种总线都标为总线系统404。
[0020]在一些实施方式中,存储器403存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统4031和应用程序4032。
[0021]其中,操作系统4031,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种寄出业务以及处理基于硬件的任务。应用程序4032,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本申请实施例方法的程序可以包含在应用程序中。
[0022]在上述实施例中,电子设备还包括:存储在存储器403上的至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集可由处理器401执行实现本申请实施例中所述任一基于AST的抽象语义拆解分析方法的步骤。
[0023]在一个实施例中,本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器执行时实现本申请实施例中所述任一基于AS本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于AST的抽象语义拆解分析方法,其特征是,所述方法包括:获取前端发送的查询请求;将所述查询请求中的select请求体封装成语法树;基于语法对应表解析所述语法树得到对应的SQL条件树;将所述SQL条件树拼接成对应的SQL语句。2.根据权利要求1所述的一种基于AST的抽象语义拆解分析方法,其特征是,将所述查询请求中的select请求体封装成语法树包括:获取所述查询请求中的select语句;将所述select语句解析生成所述select请求体;解析所述select请求体获得至少一个比较表达式,其中,所述至少一个比较表达式作为叶子节点得到所述语法树。3.根据权利要求2所述的一种基于AST的抽象语义拆解分析方法,其特征是,基于语法对应表对所述语法树的每一个所述叶子节点进行解析,得到每一个所述叶子节点对应的SQL表达式,基于所述SQL表达式替换所述叶子节点的比较表达式得到所述SQL条件树。4.根据权利要求1

3任一项所述的一种基于AST的抽象语义拆解分析方法,其特征是,所述方法还包括:将所述SQL语句发送至...

【专利技术属性】
技术研发人员:蓝城
申请(专利权)人:浙江百应科技有限公司
类型:发明
国别省市:

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

1