SQL语句的语法检查方法、系统、电子设备及可读存储介质技术方案

技术编号:37644108 阅读:10 留言:0更新日期:2023-05-25 10:10
本发明专利技术涉及数据库语言领域,公开了一种SQL语句的语法检查方法、系统、电子设备及可读存储介质,该方法通过待检查语句的数据源查询得到数据源名称,根据查询得到的数据源名称从语句配置信息中匹配语句调用对象,再基于语句调用对象和预设的语句执行参数执行待检查语句,并根据执行结果确定待检查语句的语法检查结果,相较于静态SQL检查或在线SQL检查,借助数据源和语句配置信息得到待检查语句,同时,借助JAVA反射机制调用语句调用对象,以执行待检查语句,进而根据执行结果确定语法检查结果,实现了在日常生产环境中动态检查SQL语句的语法,从而提高了SQL语句的语法检测效率。从而提高了SQL语句的语法检测效率。从而提高了SQL语句的语法检测效率。

【技术实现步骤摘要】
SQL语句的语法检查方法、系统、电子设备及可读存储介质


[0001]本专利技术涉及数据库语言
,尤其涉及一种SQL语句的语法检查方法、系统、电子设备及可读存储介质。

技术介绍

[0002]在系统迭代的过程中,需要新增或修改SQL(Structured Query Language,结构化查询语言)语言,若涉及公共SQL语句改动或大批量SQL语句改动时,未对SQL语句进行语法检测而将存在语法问题的SQL语句发布到生产环境,导致语句无法执行或出错,影响业务。
[0003]而现有的SQL语句语法检测通常是通过开发自测或系统测试,大部分是基于语法规则的离线静态SQL检查或通过关联数据库实现在线SQL检查,其中,静态SQL检查依赖于规则库的完备情况,在线SQL检查则适用于单数据源的项目而非多数据源,满足条件苛刻,导致SQL语句的语法检测效率较低。

技术实现思路

[0004]为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
[0005]鉴于以上所述现有技术的缺点,本专利技术公开了一种SQL语句的语法检查方法、系统、电子设备及可读存储介质,以提高SQL语句的语法检测效率。
[0006]本专利技术提供了一种SQL语句的语法检查方法,包括:获取待检查语句的数据源和语句配置信息;对所述数据源进行查询,得到所述待检查语句对应的数据源名称,并根据所述数据源名称从所述语句配置信息中匹配出所述待检查语句对应的语句调用对象;根据预设的语句执行参数反射调用所述语句调用对象,以执行所述待检查语句,并根据执行结果确定所述待检查语句的语法检查结果。
[0007]本专利技术提供了一种SQL语句的语法检查系统,包括:获取模块,用于获取待检查语句的数据源和语句配置信息;查询模块,用于对所述数据源进行查询,得到所述待检查语句对应的数据源名称;匹配模块,用于根据所述数据源名称从所述语句配置信息中匹配出所述待检查语句对应的语句调用对象;检查模块,用于根据预设的语句执行参数反射调用所述语句调用对象,以执行所述待检查语句,并根据执行结果确定所述待检查语句的语法检查结果。
[0008]本专利技术提供了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的方法。
[0009]本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现上述的方法。
[0010]本专利技术的有益效果:
[0011]通过待检查语句的数据源查询得到数据源名称,根据查询得到的数据源名称从语句配置信息中匹配语句调用对象,再基于语句调用对象和预设的语句执行参数执行待检查语句,并根据执行结果确定待检查语句的语法检查结果。这样,相较于静态SQL检查或在线SQL检查,借助数据源和语句配置信息得到待检查语句,同时,借助JAVA反射机制调用语句调用对象,以执行待检查语句,进而根据执行结果确定语法检查结果,实现了在日常生产环境中动态检查SQL语句的语法,从而提高了SQL语句的语法检测效率。
附图说明
[0012]图1是本专利技术实施例中一个Spring技术架构的结构示意图;
[0013]图2是本专利技术实施例中一个Mybatis技术架构的结构示意图;
[0014]图3是本专利技术实施例中一个SQL语句的语法检查方法的流程示意图;
[0015]图4是本专利技术实施例中另一个SQL语句的语法检查方法的流程示意图;
[0016]图5是本专利技术实施例中一个SQL语句的语法检查系统的结构示意图;
[0017]图6是本专利技术实施例中一个电子设备的示意图。
具体实施方式
[0018]以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的子样本可以相互组合。
[0019]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0020]在下文描述中,探讨了大量细节,以提供对本专利技术实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本专利技术的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本专利技术的实施例难以理解。
[0021]本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
[0022]除非另有说明,术语“多个”表示两个或两个以上。
[0023]本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
[0024]术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
[0025]首先需要说明的是,在本公开实施例中,SQL语句的执行是通过Spring和Mybatis实现的。
[0026]结合图1所示,本公开实施例提供了一种Spring技术架构。
[0027]Spring是一个开源框架,包含核心模块、数据持久化、Web应用插件、轻量级IoC、AOP容器等组件模块。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本JavaBean来完成以前只可能由EJB完成的事情。Spring的核心是控制反转(IoC)和面向切(AOP)。
[0028]Spring具有如下优点:低侵入式设计,代码污染极低。独立于各种应用服务器,基于Spring框架的应用,可以真正实现WriteOnce,RunAnywhere的承诺。Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦。Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
[0029]结合图2所示,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SQL语句的语法检查方法,其特征在于,包括:获取待检查语句的数据源和语句配置信息;对所述数据源进行查询,得到所述待检查语句对应的数据源名称,并根据所述数据源名称从所述语句配置信息中匹配出所述待检查语句对应的语句调用对象;根据预设的语句执行参数反射调用所述语句调用对象,以执行所述待检查语句,并根据执行结果确定所述待检查语句的语法检查结果。2.根据权利要求1所述的方法,其特征在于,对所述数据源进行查询,得到所述待检查语句对应的数据源名称,包括:所述数据源包括Spring容器;从所述Spring容器中的ApplicationContext接口提取SqlSessionFactory对象,并从所述SqlSessionFactory对象中提取MappedStatement对象;对所述MappedStatement对象进行解析,得到所述待检查语句对应的数据源名称,其中,所述数据源名称包括映射接口名称和所述映射接口名称对应的方法名称。3.根据权利要求2所述的方法,其特征在于,根据所述数据源名称从所述语句配置信息中匹配出所述待检查语句对应的语句调用对象,包括:所述语句配置信息包括SqlSession对象和Mapper类;根据所述映射接口标识从所述SqlSession对象中匹配出对应的映射接口对象,并根据所述方法标识从所述Mapper类中匹配出对应的方法对象;将所述映射接口对象和所述方法对象确定为所述待检查语句对应的语句调用对象。4.根据权利要求1所述的方法,其特征在于,通过以下方法获取所述语句执行参数:获取所述待检查语句对应的执行参数类型;根据所述执行参数类型从预设生成规则中匹配出对应的目标生成规则;根据所述目标生成规则生成所述待检查语句的语句执行参数。5.根据权利要求4所述的方法,其特征在于,根据所述目标生成规则生成所述待检查语句的语句执行参数,包括以下至少一种:若所述执行参数类型包括...

【专利技术属性】
技术研发人员:杨旭
申请(专利权)人:平安付科技服务有限公司
类型:发明
国别省市:

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

1