查询功能的检测方法、装置、计算机设备及存储介质与流程

未命名 07-12 阅读:85 评论:0
1.本技术实施例涉及计算机
技术领域
:,尤其涉及一种查询功能的检测方法、装置、计算机设备及存储介质。
背景技术
::2.随着银行自身业务的发展,可供客户办理的业务种类越来越多,随着技术的发展,客户可以使用手机或电脑在银行金融平台进行业务处理。为了保证客户能够在银行金融平台正常的进行业务办理,需要银行金融平台的开发人员进行平台的架构和平台的维护,以确保银行金融平台应用软件各个业务功能能够正常高效的运行。3.目前,在业务系统的软件开发过程中,对数据库的数据增加处理、数据删除处理、数据修改处理、以及数据查找处理,通常是软件开发过程中频繁要去处理的问题,软件开发人员通常需要根据实际需求对数据库进行各项数据处理操作。为了提高针对数据库中数据的数据查询操作的效率,通常会采用并行(parallel)查询的方式进在数据库中行数据查询操作,然而,现有的并行查询的方式若使用不当,例如设置的并行查询量过大,则会导致数据库连接异常,从而使得整个程序异常,导致软件开发人员对数据库进行数据查找时的操作效率低。技术实现要素:4.本发明实施例提供一种查询功能的检测方法、装置、计算机设备及存储介质,通过将项目源代码文件中的待分析代码文件构建抽象语法树,从而解析待分析代码文件中的并行查询操作的使用是否正确,从而排查出项目代码的项目源代码文件中存在的不正确使用并行查询方式的操作,提高针对项目代码的异常情况的排查效率,有效避免在针对数据库进行处理操作时数据库连接异常,保证在对数据库进行处理时数据库的连接的稳定,从而提高软件开发人员对数据库进行数据查找时的操作效率。5.本发明实施例提供一种查询功能的检测方法,包括:6.获取项目源代码文件中的待分析代码文件;7.基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;8.从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;9.若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;10.若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。11.相应的,本发明实施例还提供一种查询功能的检测装置,包括:12.第一获取单元,用于获取项目源代码文件中的待分析代码文件;13.处理单元,用于基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;14.查找单元,用于从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;15.第二获取单元,用于若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;16.确定单元,用于若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。17.在本发明的一些实施例中,还可以提供一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述方法的步骤。18.在本发明的一些实施例中,还可以提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行如上所述方法的步骤。19.采用本技术实施例,可以通过获取项目源代码文件中的待分析代码文件;然后,基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;接着,从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;之后,若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;最后,若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。本技术实施例通过将项目源代码文件中的待分析代码文件构建抽象语法树,从而解析待分析代码文件中的并行查询操作的使用是否正确,从而排查出项目代码的项目源代码文件中存在的不正确使用并行查询方式的操作,提高针对项目代码的异常情况的排查效率,有效避免在针对数据库进行处理操作时数据库连接异常,保证在对数据库进行处理时数据库的连接的稳定,从而提高软件开发人员对数据库进行数据查找时的操作效率。附图说明20.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。21.图1是本发明实施例提供的查询功能的检测方法的流程示意图;22.图2是本发明实施例提供的查询功能的检测方法的一种应用场景示意图;23.图3是本发明实施例提供的查询功能的检测装置的结构示意图;24.图4是本发明实施例提供的计算机设备的结构示意图。具体实施方式25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。26.现有技术中,在业务系统的软件开发过程中,对数据库的数据增加处理、数据删除处理、数据修改处理、以及数据查找处理,通常是软件开发过程中频繁要去处理的问题,软件开发人员通常需要根据实际需求对数据库进行各项数据处理操作。为了提高针对数据库中数据的数据查询操作的效率,通常会采用并行(parallel)查询的方式进在数据库中行数据查询操作,然而,现有的并行查询的方式若使用不当,例如设置的并行查询量过大,则会导致数据库连接异常,从而使得整个程序异常,导致软件开发人员对数据库进行数据查找时的操作效率低。27.为了解决上述问题,本技术实施例提供了一种查询功能的检测方法、装置、计算机设备及存储介质,可以通过获取项目源代码文件中的待分析代码文件;然后,基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;接着,从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;之后,若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;最后,若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。28.本技术实施例提供一种查询功能的检测方法、装置、计算机设备及存储介质。具体地,本技术实施例的查询功能的检测方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、个人计算机(pc,personalcomputer)、个人数字助理(personaldigitalassistant,pda)等终端设备,终端还可以包括客户端,该客户端可以是应用客户端、携带有控制程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。29.本发明实施例提供一种查询功能的检测方法、装置、计算机设备及存储介质,该查询功能的检测方法可以配合终端使用,如智能手机、平板电脑、笔记本电脑或个人计算机等。以下对该查询功能的检测方法、装置、计算机设备及存储介质进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。30.请参阅图1,图1为本技术实施例提供的一种查询功能的检测方法的流程示意图,具体流程可以如下步骤101至步骤105:31.101,获取项目源代码文件中的待分析代码文件。32.为了能够提高对项目源代码文件的处理效率,在步骤“获取项目源代码文件中的待分析代码文件”之前,方法可以包括:33.获取项目源代码文件中的所有代码文件;34.基于指定文件后缀对所述所有代码文件进行筛选处理,以得到多个待分析代码文件。35.具体的,计算机设备可以从项目代码管理仓库(gitlab)中通过代码查询命令(例如gitclone命令)获取目标项目的项目源代码,也即获取目标项目的项目源代码文件。然后,计算机设备可以根据指定文件后缀“.sql”,从整个项目源代码文件中查找项目源代码文件中所有带有“.sql”后缀的文件作为待分析代码文件,并将上述待分析代码文件的文件路径添加至待分析文件列表,以供后续进行待分析文件分析时能够方便快捷的查找需要进行文件分析处理的文件,也即后续可以对待分析文件列表中每一个待分析代码文件进行循环遍历操作,以对待分析文件列表对应的各个待分析代码文件进行文件分析。36.102,基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树。37.在本技术实施例中,可以通过对待分析代码文件构建基于pl/sql语法的抽象语法树,在构建后得到的待分析代码文件的目标抽象语法树中通过xpath查找相关节点。其中,pl/sql是一种程序语言,又称过程化sql语言(procedurallanguage/sql)。oraclepl/sql语言是结合了结构化查询与oracle自身过程控制为一体的编程语言,拥有自身的变量声明、赋值语句,而且还有条件、循环等流程控制语句,可以用于创建过程和函数以及程序包。抽象语法树(abstractsyntaxtree,ast)是源代码语法结构的一种抽象表示,它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。38.具体的,计算机设备可以通过对待分析文件列表中的每一个后缀为sql的待分析代码文件构建基于pl/sql语法的抽象语法树,在为每一个待分析代码文件构建后对应的抽象语法树后,在抽象语法树中可以通过xpath查找相关节点。39.为了减少需要进行分析的文件,提高针对异常文件的排查效率,在步骤“基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树”之后,方法可以包括:40.确定所述待分析代码文件是否为数据库操作文件,其中,所述数据库操作文件用于实现对数据库的数据库操作功能;41.若是,则从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。42.进一步的,步骤“所述确定所述待分析代码文件是否为数据库操作文件”,方法可以包括:43.从所述目标抽象语法树的操作节点中,查找是否存在目标输入节点;44.若存在所述目标输入节点,则确定所述待分析代码文件为数据库操作文件,从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。45.例如,计算机设备可以分析某待分析代码文件对应的pl/sql抽象语法树中是否存在input节点,如果抽象语法树中存在input节点,则该待分析代码文件为oracle数据库操作文件;如果抽象语法树中不存在input节点,则表明该待分析代码文件不是oracle数据库操作文件,则不需要对该待分析代码文件继续进行后续分析。46.103,从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。47.在一具体实施例中,在步骤“确定所述待分析代码文件是否为数据库操作文件”之后,方法可以包括:48.从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点;49.若存在所述并行操作节点,则获取所述并行操作节点下存储的文本属性值,基于所述并行操作节点下存储的文本属性值,确定所述数据库操作文件是否为查询代码文件,其中,所述查询代码文件用于实现对所述数据库执行数据库查询功能。50.进一步的,步骤“所述基于所述并行操作节点下存储的文本属性值,确定所述数据库操作文件是否为查询代码文件”,方法可以包括:51.若所述并行操作节点下存储的文本属性值中存在指定查询语句,则确定所述数据库操作文件为查询代码文件;52.在确定所述数据库操作文件为查询代码文件之后,还包括:53.从所述目标抽象语法树的操作节点中,查找是否存在并行查询节点;54.若存在所述并行查询节点,则获取所述并行查询节点下存储的文本属性值。55.可选的,在步骤“获取所述并行操作节点下存储的文本属性值”之后,方法可以包括:56.将所述并行操作节点下存储的文本属性值进行字符类型转换处理,以得到处理后的文本属性值;57.所述基于所述并行操作节点下存储的文本属性值,确定所述数据库操作文件是否为查询代码文件,包括:58.基于所述处理后的文本属性值,确定所述数据库操作文件是否为查询代码文件。59.例如,计算机设备可以对某数据库操作文件的pl/sql抽象语法树继续进行分析,分析该数据库操作文件的pl/sql抽象语法树是否存在ddlcommand节点,如果该数据库操作文件的pl/sql抽象语法树中不存在ddlcommand节点,则表示该数据库操作文件没有申明使用parallel查询。如果该数据库操作文件的pl/sql抽象语法树中存在ddlcommand节点,则保存查找到的ddlcommand节点信息到ddlcommand节点列表,然后,循环遍历分析ddlcommand节点列表中的每一个ddlcommand节点,分析该ddlcommand节点下的文本(text)属性值,通过xpath提取该ddlcommand节点下的文本(text)属性值。接着,计算机设备通过translate函数将文本(text)属性值中的所有大写字符转换为小写字符,以方便后续步骤中统一比较与查找操作。最后,计算机设备可以判断转换后的文本(text)属性值中是否同时存在alertparallel语句,如果不存在,则表示该数据库操作文件没有申明使用parallel查询;如果文本(text)属性值中存在alertparallel语句,则表示该数据库操作文件申明使用parallel查询,即该数据库操作文件为查询代码文件。60.104,若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值。61.在本技术实施例中,计算机设备可以继续查询该查询代码文件的ddlcommand节点下是否存在selectstatement节点,如果不存在,则跳过分析。如果存在,则分析该selectstatement节点下的文本(text)属性值,通过xpath提取该selectstatement节点下的文本(text)属性值。62.105,若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。63.在本技术实施例中,计算机设备可以通过translate函数将文本(text)属性值中的所有大写字符转换为小写字符,以方便后续步骤中统一比较与查找操作。最后,计算机设备可以通过正则表达式re(parallel(*,*)提取paralle(table,count)中的count的值,如果count值小于等于预设参考值8,则跳过检查,表明并行查询设置正常。如果count值大于预设参考值8,则表明并行查询设置异常,存在导致数据库连接异常,则需要提示相关开发需修改该待分析代码文件。64.为了使待分析代码文件可以正常运行,在确定该待分析代码文件的查询功能设置异常后,可以对该待分析代码文件中的count值进行修改,具体将待分析代码文件中的count值修改为小于或等于预设参考值,以将该待分析代码文件的查询功能设置正常。65.其中,该预设参考值可以根据中央处理器(centralprocessingunit,cpu)的性能参数进行确定,例如可以根据中央处理器的核数进行确定。66.根据上述介绍的内容,下面将举例来进一步说明本技术的查询功能的检测方法。下面将以查询功能的检测方法在具体实施场景中的应用为例进行说明,具体应用场景如下所述:67.(1)获取项目源代码文件中的查询代码文件,其中,所述查询代码文件用于实现对数据库执行数据库查询功能。68.(2)基于所述查询代码文件进行抽象语法树构建处理,以得到所述查询代码文件对应的目标抽象语法树。69.(3)从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。70.(4)若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值。71.(5)若所述文本属性值大于预设参考值,则确定所述查询代码文件的查询设置异常。72.根据上述介绍的内容,下面将举例来进一步说明本技术的查询功能的检测方法。下面将以查询功能的检测方法在具体实施场景中的应用为例进行说明,请参阅图2,图2是本技术提供的查询功能的检测方法的具体应用场景,该具体应用场景如下所述:73.(1)计算机设备可以从项目代码管理仓库(gitlab)中通过代码查询命令(例如gitclone命令)获取目标项目的项目源代码,也即获取目标项目的项目源代码文件。然后,计算机设备可以根据指定文件后缀“.sql”,从整个项目源代码文件中查找项目源代码文件中所有带有“.sql”后缀的文件作为待分析代码文件,并将上述待分析代码文件的文件路径添加至待分析文件列表,以供后续进行待分析文件分析时能够方便快捷的查找需要进行文件分析处理的文件,也即后续可以对待分析文件列表中每一个待分析代码文件进行循环遍历操作,以对待分析文件列表对应的各个待分析代码文件进行文件分析。74.(2)计算机设备可以对待分析文件列表中每一个待分析代码文件进行循环遍历操作,通过对待分析文件列表中的每一个后缀为sql的待分析代码文件构建基于pl/sql语法的抽象语法树,在为每一个待分析代码文件构建后对应的目标抽象语法树后,在目标抽象语法树中可以通过xpath查找相关节点。75.(3)计算机设备可以分析某待分析代码文件对应的pl/sql抽象语法树中是否存在input节点,如果抽象语法树中存在input节点,则该待分析代码文件为oracle数据库操作文件;如果抽象语法树中不存在input节点,则表明该待分析代码文件不是oracle数据库操作文件,则不需要对该待分析代码文件继续进行后续分析。76.(4)计算机设备在确定该待分析代码文件的抽象语法树中存在input节点、确定该待分析代码文件为oracle数据库操作文件后,计算机设备可以对某数据库操作文件的pl/sql抽象语法树继续进行分析,分析该数据库操作文件的pl/sql抽象语法树是否存在ddlcommand节点,如果该数据库操作文件的pl/sql抽象语法树中不存在ddlcommand节点,则表示该数据库操作文件没有申明使用parallel查询。如果该数据库操作文件的pl/sql抽象语法树中存在ddlcommand节点,则保存查找到的ddlcommand节点信息到ddlcommand节点列表,然后,循环遍历分析ddlcommand节点列表中的每一个ddlcommand节点,分析该ddlcommand节点下的文本(text)属性值,通过xpath提取该ddlcommand节点下的文本(text)属性值。接着,计算机设备通过translate函数将文本(text)属性值中的所有大写字符转换为小写字符,以方便后续步骤中统一比较与查找操作。最后,计算机设备可以判断转换后的文本(text)属性值中是否同时存在alertparallel语句,如果不存在,则表示该数据库操作文件没有申明使用parallel查询;如果文本(text)属性值中存在alertparallel语句,则表示该数据库操作文件申明使用parallel查询,即该数据库操作文件为查询代码文件。77.(5)计算机设备可以继续查询该查询代码文件的ddlcommand节点下是否存在selectstatement节点,如果不存在,则跳过分析。如果存在,则分析该selectstatement节点下的文本(text)属性值,通过xpath提取该selectstatement节点下的文本(text)属性值。计算机设备可以通过translate函数将文本(text)属性值中的所有大写字符转换为小写字符,以方便后续步骤中统一比较与查找操作。最后,计算机设备可以通过正则表达式re(parallel(*,*)提取paralle(table,count)中的count的值,如果count值小于等于预设参考值8,则跳过检查,表明并行查询设置正常。如果count值大于预设参考值8,则表明并行查询设置异常,存在导致数据库连接异常,则需要提示相关开发需修改该待分析代码文件。78.综上所述,本技术实施例提供一种查询功能的检测方法,通过获取项目源代码文件中的待分析代码文件;然后,基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;接着,从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;之后,若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;最后,若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。本技术实施例通过将项目源代码文件中的待分析代码文件构建抽象语法树,从而解析待分析代码文件中的并行查询操作的使用是否正确,从而排查出项目代码的项目源代码文件中存在的不正确使用并行查询方式的操作,提高针对项目代码的异常情况的排查效率,有效避免在针对数据库进行处理操作时数据库连接异常,保证在对数据库进行处理时数据库的连接的稳定,从而提高软件开发人员对数据库进行数据查找时的操作效率。79.为了更好地实施以上方法,相应的,本发明实施例还提供一种查询功能的检测装置,该查询功能的检测装置具体集成在终端或服务器中。80.请参阅3,图3为本技术实施例提供的一种查询功能的检测装置的结构示意图,该查询功能的检测装置包括:81.第一获取单元201,用于获取项目源代码文件中的待分析代码文件;82.处理单元202,用于基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;83.查找单元203,用于从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;84.第二获取单元204,用于若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;85.确定单元205,用于若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。86.在一些实施例中,该查询功能的检测装置包括:87.第一确定子单元,用于确定所述待分析代码文件是否为数据库操作文件,其中,所述数据库操作文件用于实现对数据库的数据库操作功能;88.第一查找子单元,用于若是,则从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。89.在一些实施例中,该查询功能的检测装置包括:90.第二查找子单元,用于从所述目标抽象语法树的操作节点中,查找是否存在目标输入节点;91.第二确定子单元,用于若存在所述目标输入节点,则确定所述待分析代码文件为数据库操作文件,从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。92.在一些实施例中,该查询功能的检测装置包括:93.第三查找子单元,用于从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点;94.第一获取子单元,用于若存在所述并行操作节点,则获取所述并行操作节点下存储的文本属性值,基于所述并行操作节点下存储的文本属性值,确定所述数据库操作文件是否为查询代码文件,其中,所述查询代码文件用于实现对所述数据库执行数据库查询功能。95.在一些实施例中,该查询功能的检测装置包括:96.第三确定子单元,用于若所述并行操作节点下存储的文本属性值中存在指定查询语句,则确定所述数据库操作文件为查询代码文件;97.在确定所述数据库操作文件为查询代码文件之后,还包括:98.第四查找子单元,用于从所述目标抽象语法树的操作节点中,查找是否存在并行查询节点;99.第二获取子单元,用于若存在所述并行查询节点,则获取所述并行查询节点下存储的文本属性值。100.在一些实施例中,该查询功能的检测装置包括:101.第一处理子单元,用于将所述并行操作节点下存储的文本属性值进行字符类型转换处理,以得到处理后的文本属性值;102.在一些实施例中,该查询功能的检测装置包括:103.第四确定子单元,用于基于所述处理后的文本属性值,确定所述数据库操作文件是否为查询代码文件。104.在一些实施例中,该查询功能的检测装置包括:105.第三获取子单元,用于获取项目源代码文件中的所有代码文件;106.第二处理子单元,用于基于指定文件后缀对所述所有代码文件进行筛选处理,以得到多个待分析代码文件。107.本技术实施例提供一种查询功能的检测装置,通过第一获取单元201获取项目源代码文件中的待分析代码文件;处理单元202基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;查找单元203从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;第二获取单元204若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;确定单元205若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。本技术实施例通过将项目源代码文件中的待分析代码文件构建抽象语法树,从而解析待分析代码文件中的并行查询操作的使用是否正确,从而排查出项目代码的项目源代码文件中存在的不正确使用并行查询方式的操作,提高针对项目代码的异常情况的排查效率,有效避免在针对数据库进行处理操作时数据库连接异常,保证在对数据库进行处理时数据库的连接的稳定,从而提高软件开发人员对数据库进行数据查找时的操作效率。108.此外,本发明实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,如图4所示,其示出了本发明实施例所涉及的计算机设备的结构示意图,具体来讲:109.该计算机设备可以包括一个或者一个以上处理核心的处理器301、一个或一个以上计算机可读存储介质的存储器302、电源303和输入单元304等部件。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:110.处理器301是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器301可包括一个或多个处理核心;优选的,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。111.存储器302可用于存储软件程序以及模块,处理器301通过运行存储在存储器302的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器302还可以包括存储器控制器,以提供处理器301对存储器302的访问。112.计算机设备还包括给各个部件供电的电源303,优选的,电源303可以通过电源管理系统与处理器301逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源303还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。113.该计算机设备还可包括输入单元304,该输入单元304可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。114.尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器301会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器302中,并由处理器301来运行存储在存储器302中的应用程序,从而实现各种功能,如下:115.获取项目源代码文件中的待分析代码文件;116.基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;117.从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;118.若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;119.若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。120.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。121.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。122.为此,本发明实施例还提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例中的各种可选实现方式中提供的方法。123.根据本技术的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的各种可选实现方式中提供的方法。124.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。125.其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。126.由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种查询功能的检测方法中的步骤,因此,可以实现本技术实施例所提供的任一种查询功能的检测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。127.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。128.以上对本发明实施例所提供的一种查询功能的检测方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
技术特征:
1.一种查询功能的检测方法,其特征在于,包括:获取项目源代码文件中的待分析代码文件;基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。2.根据权利要求1所述的查询功能的检测方法,其特征在于,在基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树之后,还包括:确定所述待分析代码文件是否为数据库操作文件,其中,所述数据库操作文件用于实现对数据库的数据库操作功能;若是,则从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。3.根据权利要求2所述的查询功能的检测方法,其特征在于,所述确定所述待分析代码文件是否为数据库操作文件,包括:从所述目标抽象语法树的操作节点中,查找是否存在目标输入节点;若存在所述目标输入节点,则确定所述待分析代码文件为数据库操作文件,从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点。4.根据权利要求3所述的查询功能的检测方法,其特征在于,在确定所述待分析代码文件是否为数据库操作文件之后,还包括:从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点;若存在所述并行操作节点,则获取所述并行操作节点下存储的文本属性值,基于所述并行操作节点下存储的文本属性值,确定所述数据库操作文件是否为查询代码文件,其中,所述查询代码文件用于实现对所述数据库执行数据库查询功能。5.根据权利要求4所述的查询功能的检测方法,其特征在于,所述基于所述并行操作节点下存储的文本属性值,确定所述数据库操作文件是否为查询代码文件,包括:若所述并行操作节点下存储的文本属性值中存在指定查询语句,则确定所述数据库操作文件为查询代码文件;在确定所述数据库操作文件为查询代码文件之后,还包括:从所述目标抽象语法树的操作节点中,查找是否存在并行查询节点;若存在所述并行查询节点,则获取所述并行查询节点下存储的文本属性值。6.根据权利要求4所述的查询功能的检测方法,其特征在于,在获取所述并行操作节点下存储的文本属性值之后,还包括:将所述并行操作节点下存储的文本属性值进行字符类型转换处理,以得到处理后的文本属性值;
所述基于所述并行操作节点下存储的文本属性值,确定所述数据库操作文件是否为查询代码文件,包括:基于所述处理后的文本属性值,确定所述数据库操作文件是否为查询代码文件。7.根据权利要求1所述的查询功能的检测方法,其特征在于,在获取项目源代码文件中的待分析代码文件之前,包括:获取项目源代码文件中的所有代码文件;基于指定文件后缀对所述所有代码文件进行筛选处理,以得到多个待分析代码文件。8.一种查询功能的检测装置,其特征在于,包括:第一获取单元,用于获取项目源代码文件中的待分析代码文件;处理单元,用于基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;查找单元,用于从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;第二获取单元,用于若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;确定单元,用于若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常,其中,所述查询功能为所述待分析代码文件可实现对数据库执行数据库查询的功能。9.一种计算机设备,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述查询功能的检测方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至7中任一项所述查询功能的检测方法的步骤。

技术总结
本申请实施例公开了一种查询功能的检测方法、装置、计算机设备及存储介质,包括:获取项目源代码文件中的待分析代码文件;基于所述待分析代码文件进行抽象语法树构建处理,以得到所述待分析代码文件对应的目标抽象语法树;从所述目标抽象语法树的操作节点中,查找是否存在并行操作节点以及并行查询节点;若存在所述并行操作节点以及所述并行查询节点,则获取所述并行查询节点下存储的文本属性值;若所述文本属性值大于预设参考值,则确定所述待分析代码文件的查询功能设置异常。本申请实施例可以提高针对项目代码的异常情况的排查效率,保证在对数据库进行处理时数据库的连接的稳定,从而提高软件开发人员对数据库进行数据查找时的操作效率。时的操作效率。时的操作效率。


技术研发人员:周小亮
受保护的技术使用者:平安银行股份有限公司
技术研发日:2023.03.28
技术公布日:2023/7/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐