CN110765152B - Sql提取方法、装置、计算机设备和存储介质 - Google Patents
Sql提取方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110765152B CN110765152B CN201910882324.5A CN201910882324A CN110765152B CN 110765152 B CN110765152 B CN 110765152B CN 201910882324 A CN201910882324 A CN 201910882324A CN 110765152 B CN110765152 B CN 110765152B
- Authority
- CN
- China
- Prior art keywords
- file
- mapping file
- mapping
- sql
- format
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种SQL提取方法、装置、计算机设备和存储介质。当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件;根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件,可以将不同格式的待审计映射文件调整为标准映射文件,方便后续的解析;对标准映射文件中的select语句进行提取,获得select语句文件;对select语句文件中的内容进行文件重写,得到新的映射文件;根据新的映射文件构造Mybatis工程;运行Mybatis工程打印SQL语句,获得SQL文件。当需要对映射文件中的SQL语句进行审计优化时,可以直接通过映射文件提取出映射文件中的SQL语句,从而对SQL语句进行审计优化,提高了对映射文件中SQL语句的审计优化的工作效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种SQL提取方法、装置、计算机设备和存储介质。
背景技术
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),是目前java开发的主流框架。在SSM+MySQL(MySQL是一个关系型数据库管理系统)架构中,SQL(结构化查询语言)一般写在映射文件中,对于映射文件的审计一直是个头疼的问题。测试人员很难覆盖映射文件中动态SQL语句的所有情况,开发人员更是无法罗列每一个select id对应的所有SQL语句。这就导致不合规或性能差的“问题”SQL语句被发布到生产环境,引起生产故障。所以,对于映射文件的审计一直以来都是开发测试人员和DBA(数据库管理员)重点关注的部分。
对于映射文件中SQL语句的提取是审计映射文件的首要工作,也是一直以来的难点所在。一条动态SQL语句在映射文件中能够产生的SQL语句与其所含的动态参数有关,一般为2n个,n为动态参数个数。由此可见,要想提取映射文件中的SQL语句是比较困难的。目前,行业内对于SQL语句的提取大多由开发人员手动查看写入SQL语句,找出SQL进行设计审计,工作效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种提高工作效率低的SQL提取方法、装置、计算机设备和存储介质。
一种SQL提取方法,所述方法包括:
当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的待审计映射文件;
根据预设编写格式对所述待审计映射文件进行格式调整,获得标准映射文件;
对标准映射文件中的select语句进行提取,获得select语句文件;
对所述select语句文件中的内容进行文件重写,得到新的映射文件;
根据所述新的映射文件构造Mybatis工程;
运行所述Mybatis工程打印SQL语句,获得SQL文件。
在其中一个实施例中,所述当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的待审计映射文件的步骤,包括:
当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的映射文件;
根据预设文件格式对所述映射文件进行语法验证,确定所述映射文件是否通过语法验证;
将通过语法验证的映射文件作为待审计映射文件。
在其中一个实施例中,所述根据预设文件格式对所述映射文件进行语法验证,确定所述映射文件是否通过语法验证的步骤,包括:
根据预设文件格式对所述映射文件中的开头内容和结尾内容进行匹配,确定所述开头内容的格式和所述结尾内容的格式是否与预设文件格式相同;
当所述开头内容的格式和所述结尾内容的格式与预设文件格式相同,确定所述映射文件通过语法验证;
当所述开头内容的格式和所述结尾内容的格式与预设文件格式不相同,确定所述映射文件未通过语法验证。
在其中一个实施例中,所述对所述select语句文件中的内容进行文件重写,得到新的映射文件的步骤,包括:
对所述select语句文件进行遍历,提取出所述select语句文件中各select标签中的关键信息;
根据所述关键信息进行文件重写,获得新的映射文件。
在其中一个实施例中,所述根据所述关键信息进行文件重写,获得新的映射文件的步骤,包括:
根据所述关键信息对所述select语句文件中的内容进行简化,获得新的映射文件。
在其中一个实施例中,所述根据所述新的映射文件构造Mybatis工程的步骤,包括:
根据所述新的映射文件和所述关键信息,生成Mybatis工程所需的接口类文件、实体类文件及测试类文件;
根据所述接口类文件、所述实体类文件及所述测试类文件构造Mybatis工程。
在其中一个实施例中,所述运行所述Mybatis工程打印SQL语句,获得SQ L文件的步骤,包括:
通过编译并运行所述测试类文件,与所述接口类文件、所述实体类文件进行交互调起所述Mybatis工程;
打印调起所述Mybatis工程时的SQL语句,获得SQL文件。
一种SQL提取装置,所述装置包括:
指令检测模块,用于当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的待审计映射文件;
格式调整模块,用于根据预设编写格式对所述待审计映射文件进行格式调整,获得标准映射文件;
select语句提取模块,用于对标准映射文件中的select语句进行提取,获得select语句文件;
文件重写模块,用于对所述select语句文件中的内容进行文件重写,得到新的映射文件;
Mybatis工程构造模块,用于根据所述新的映射文件构造Mybatis工程;
打印SQL语句模块,用于运行所述Mybatis工程打印SQL语句,获得SQL文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法的步骤。
上述SQL提取方法、装置、计算机设备和存储介质,当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件;根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件,可以将不同格式的待审计映射文件调整为标准映射文件,方便后续的解析;对标准映射文件中的select语句进行提取,获得select语句文件;对select语句文件中的内容进行文件重写,得到新的映射文件,可以将业务含义数据剔除,保留可以用于构造Mybatis工程的语句;根据新的映射文件构造Mybatis工程;运行Mybatis工程打印SQL语句,获得SQL文件。当需要对映射文件中的SQL语句进行审计优化时,可以直接通过映射文件提取出映射文件中的SQL语句,从而对SQL语句进行审计优化,提高了对映射文件中SQL语句的审计优化的工作效率。
附图说明
图1为一个实施例中SQL提取方法的应用场景图;
图2为一个实施例中SQL提取方法的流程示意图;
图3为一个实施例中SQL提取装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的SQL提取方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。可以是当终端102检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件;根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件;对标准映射文件中的select语句进行提取,获得select语句文件;对select语句文件中的内容进行文件重写,得到新的映射文件;根据新的映射文件构造Mybatis工程;运行Mybatis工程打印SQL语句,获得SQL文件。还可以是终端102通过网络与服务器104进行交互实现,当服务器104检测到终端102发送的携带有映射文件标识的文件获取指令时,根据映射文件标识向终端102获取对应的待审计映射文件;根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件;对标准映射文件中的select语句进行提取,获得select语句文件;对select语句文件中的内容进行文件重写,得到新的映射文件;根据新的映射文件构造Mybatis工程;运行Mybatis工程打印SQL语句,获得SQL文件。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种SQL提取方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤S220,当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件。
其中,映射文件标识可以是映射文件存储的路径,也可以是映射文件存储的路径及文件名,也可以是映射文件的文件名。待审计映射文件为开发人员开发完后,且未发布的Mybatis的映射文件,SQL一般写在映射文件中,SQL中最常见一类语句,如:select语句。采用SQL(结构化查询语言)编写的语句为SQL语句。根据映射文件标识获取对应的待审计映射文件,可以是用户直接上传获得,基于文件名确定对应的待审计映射文件,也可以是用户将待审计映射文件存储在数据库中,且数据库中的文件都属于待审计映射文件时,通过映射文件存储的路径获取对应的待审计映射文件,也可以是用户将待审计映射文件存储在数据库中,且数据库中有待审计映射文件,但也有不是待审计映射文件,或只对数据库中某个待审计映射文件进行SQL提取时,可通过映射文件存储的路径和文件名获取对应的待审计映射文件。
步骤S240,根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件。
其中,开发人员编写时,个人编写习惯不相同,编写待审计映射文件时,采用的格式可能会不同,比如有的开发人员喜欢将两个标签对写在同一行,而写在同一行不利于文件的解析,可以根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件。标准映射文件为根据预设编写格式编写的映射文件,预设编写格式是本领域制定的统一的程序编写格式,如:同一行不能出现两个以上标签对。根据预设编写格式对待审计映射文件进行格式分析,将待审计映射文件中不符合预设编写格式的内容进行格式标准化,获得标准映射文件。可以方便后续的解析,避免提取出错。
步骤S260,对标准映射文件中的select语句进行提取,获得select语句文件。
其中,select语句是SQL(SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统)中用于从数据库中选取数据的语句。select语句包括动态SQL语句和静态SQL语句,动态SQL语句是指含有动态条件、能够生成多条SQL的select语句,静态SQL语句是指不含有动态条件、只能生成一条SQL的select语句。select语句文件中写入了从标准映射文件中提取出来的所有select语句。其中,可以基于正则表达式的方式对标准映射文件中的select语句进行提取,获得select语句文件。正则表达式对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,用来检索、替换那些符合某个模式(规则)的文本。可以根据审计重点针对性提取出标准映射文件中的select语句,可以提高审计优化的效率。
步骤S280,对select语句文件中的内容进行文件重写,得到新的映射文件。
其中,对select语句文件中的内容进行文件重写,主要是在select语句文件中的剔除与SQL无关的应用相关的参数,提取出每一个select标签对中的关键信息,通过关键信息重新构造简化,得到新的映射文件,如:待审计映射文件是针对不同用户或企业而编写的,因此待审计映射文件中的SQL语句中包含了与各用户或企业业务含义相关的数据(如用户类、产品类等等),不需要这些数据来构造Mybatis工程,只需保留用于构造Mybatis工程的关键信息即可,关键信息包括select_id、文本信息、变量信息等。可以通过设定关键字,基于关键字遍历查找select语句文件中的每一个select标签对中的关键信息,获得select语句文件中各select标签中的关键信息,根据关键信息进行文件重写,获得新的映射文件。
步骤S300,根据所述新的映射文件构造Mybatis工程。
其中,根据新的映射文件和提取出关键信息生成Mybatis(一款持久层框架,它支持定制化SQL、存储过程以及高级映射)工程所必须的接口类、实体类、测试类等文件,测试类中会涵盖动态SQL语句的所有可能的情况。测试类文件里面有主函数,主函数中会有调起SQL的触发函数,每种情况都有一个触发函数。为了提取出动态SQL语句的所有情况时使用。
步骤S320,运行Mybatis工程打印SQL语句,获得SQL文件。
其中,运行构造好的Mybatis工程。Mybatis工程在运行时会打印SQL语句至日志(SQL文件),通过解析日志(SQL文件)便可获取待审计映射文件可能产生所有select语句。解决了测试人员很难覆盖映射文件中动态SQL的所有情况的问题,且提高了工作效率。
上述SQL提取方法中,当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件;根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件,可以将不同格式的待审计映射文件调整为标准映射文件,方便后续的解析;对标准映射文件中的select语句进行提取,获得select语句文件;对select语句文件中的内容进行文件重写,得到新的映射文件,提取出动态语句及静态语句;根据新的映射文件构造Mybatis工程;运行Mybatis工程打印SQL语句,获得SQL文件。当需要对映射文件中的SQL语句进行审计优化时,可以直接通过映射文件提取出映射文件中的SQL语句,从而对SQL语句进行审计优化,提高了对映射文件中SQL语句的审计优化的工作效率。
在一个实施例中,当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件的步骤,包括:当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的映射文件;根据预设文件格式对映射文件进行语法验证,确定映射文件是否通过语法验证;将通过语法验证的映射文件作为待审计映射文件。
其中,待审计映射文件有其固定的语法格式,可以根据待审计映射文件固有的语法格式,设定预设文件格式,用于验证根据映射文件标识获取到的文件是否为待审计映射文件。根据预设文件格式对获取到的映射文件进行语法校验,语法校验通过的映射文件作为待审计映射文件,语法校验不通过时,可以发送提醒消息,提醒用户重新检查映射文件标识是否正常,可以避免用户将别的文件当作待审计映射文件进行SQL提取。
在一个实施例中,根据预设文件格式对映射文件进行语法验证,确定映射文件是否通过语法验证的步骤,包括:根据预设文件格式对映射文件中的开头内容和结尾内容进行匹配,确定开头内容的格式和结尾内容的格式是否与预设文件格式相同;当开头内容的格式和结尾内容的格式与预设文件格式相同,确定映射文件通过语法验证;当开头内容的格式和结尾内容的格式与预设文件格式不相同,确定映射文件未通过语法验证。
其中,预设文件格式是根据待审计映射文件的开头内容和结尾内容中使用的固有语法格式设置的,可以通过将映射文件中的开头内容和结尾内容与预设文件格式进行匹配,确定开头内容的格式和结尾内容的格式是否与预设文件格式相同,当开头内容的格式和结尾内容的格式与预设文件格式相同,确定映射文件通过语法验证;当开头内容的格式和结尾内容的格式与预设文件格式不相同,确定映射文件未通过语法验证,(如:Mybatis的映射文件的文件开头都会注明文件类型,基于文件开头即可确定是否为Mybatis的映射文件,是Mybatis的映射文件,通过语法验证,不是Mybatis的映射文件,则未通过语法验证)。可以避免用户将别的文件当作映射文件进行SQL提取。
在一个实施例中,对select语句文件中的内容进行文件重写,得到新的映射文件的步骤,包括:对select语句文件进行遍历,提取出select语句文件中各select标签中的关键信息;根据关键信息进行文件重写,获得新的映射文件。
其中,select标签是用于创建一个选择列表或者下拉列表的select元素。关键信息包括select_id、文本信息、变量信息等等。通过遍历select语句文件,提取出每一个select标签中的关键信息,根据关键信息重新构造简化,生成新的映射文件。select语句文件中有很多和应用相关的参数,和SQL的解析提取无关,需要剔除,在遍历select语句文件时仅会提取其中关键信息用于生成简化版的新的映射文件,为了用于提取动态SQL的所有情况时使用。
在一个实施例中,根据关键信息进行文件重写,获得新的映射文件的步骤,包括:根据关键信息对select语句文件中的内容进行简化,获得新的映射文件。
其中,根据关键信息中的select_id、文本信息、变量信息,简化select语句文件中的内容,获得新的映射文件。
在一个实施例中,根据新的映射文件构造Mybatis工程的步骤,包括:根据新的映射文件和关键信息,生成Mybatis工程所需的接口类文件、实体类文件及测试类文件;根据接口类文件、实体类文件及测试类文件构造Mybatis工程。
其中,根据新的映射文件和提取出的关键信息生成Mybatis工程所必须的接口类、实体类、测试类等文件,测试类中会涵盖动态SQL的所有可能的情况。测试类文件里面有主函数,主函数中会有调起SQL的触发函数,每种情况都有一个触发函数。为了提取出动态SQL的所有情况时使用。
在一个实施例中,运行Mybatis工程打印SQL语句,获得SQ L文件的步骤,包括:通过编译并运行测试类文件,与接口类文件、实体类文件进行交互调起Mybatis工程;打印调起Mybatis工程时的SQL语句,获得SQL文件。
其中,编译并运行生成的测试类文件,与接口类文件和实体类文件交互,可调起构造好的Mybatis工程。Mybatis工程在运行时会打印SQL至日志,通过解析日志便可获取产生的所有SQL语句。解决了测试人员很难覆盖待审计映射文件中动态SQL的所有情况的问题,且提高了工作效率。
在一个实施例中,对获得的SQL文件进行设计审计,确定问题SQL语句,对问题SQL语句进行优化。可以避免映射文件隐藏的“问题”SQL语句发布到生产环境。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种SQL提取装置,包括:指令检测模块310、格式调整模块320、select语句提取模块330、文件重写模块340、Mybatis工程构造模块350和打印SQL语句模块360,其中:
指令检测模块310,用于当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件;
格式调整模块320,用于根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件;
select语句提取模块330,用于对标准映射文件中的select语句进行提取,获得select语句文件;
文件重写模块340,用于对select语句文件中的内容进行文件重写,得到新的映射文件;
Mybatis工程构造模块350,用于根据新的映射文件构造Mybatis工程;
打印SQL语句模块360,用于运行Mybatis工程打印SQL语句,获得SQL文件。
在一个实施例中,指令检测模块310还用于:当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的映射文件;根据预设文件格式对映射文件进行语法验证,确定映射文件是否通过语法验证;将通过语法验证的映射文件作为待审计映射文件。
在一个实施例中,指令检测模块310还用于:根据预设文件格式对映射文件中的开头内容和结尾内容进行匹配,确定开头内容的格式和结尾内容的格式是否与预设文件格式相同;当开头内容的格式和结尾内容的格式与预设文件格式相同,确定映射文件通过语法验证;当开头内容的格式和结尾内容的格式与预设文件格式不相同,确定映射文件未通过语法验证。
在一个实施例中,文件重写模块340还用于:对select语句文件进行遍历,提取出select语句文件中各select标签中的关键信息;根据关键信息进行文件重写,获得新的映射文件。
在一个实施例中,文件重写模块340还用于:根据关键信息对select语句文件中的内容进行简化,获得新的映射文件。
在一个实施例中,Mybatis工程构造模块350还用于:根据新的映射文件和关键信息,生成Mybatis工程所需的接口类文件、实体类文件及测试类文件;根据接口类文件、实体类文件及测试类文件构造Mybatis工程。
在一个实施例中,打印SQL语句模块360还用于:通过编译并运行测试类文件,与接口类文件、实体类文件进行交互调起Mybatis工程;打印调起Mybatis工程时的SQL语句,获得SQL文件。
关于SQL提取装置的具体限定可以参见上文中对于SQL提取方法的限定,在此不再赘述。上述SQL提取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种SQL提取方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件;根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件;对标准映射文件中的select语句进行提取,获得select语句文件;对select语句文件中的内容进行文件重写,得到新的映射文件;根据新的映射文件构造Mybatis工程;运行Mybatis工程打印SQL语句,获得SQL文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的映射文件;根据预设文件格式对映射文件进行语法验证,确定映射文件是否通过语法验证;将通过语法验证的映射文件作为待审计映射文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据预设文件格式对映射文件中的开头内容和结尾内容进行匹配,确定开头内容的格式和结尾内容的格式是否与预设文件格式相同;当开头内容的格式和结尾内容的格式与预设文件格式相同,确定映射文件通过语法验证;当开头内容的格式和结尾内容的格式与预设文件格式不相同,确定映射文件未通过语法验证。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对select语句文件进行遍历,提取出select语句文件中各select标签中的关键信息;根据关键信息进行文件重写,获得新的映射文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据关键信息对select语句文件中的内容进行简化,获得新的映射文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据新的映射文件和关键信息,生成Mybatis工程所需的接口类文件、实体类文件及测试类文件;根据接口类文件、实体类文件及测试类文件构造Mybatis工程。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过编译并运行测试类文件,与接口类文件、实体类文件进行交互调起Mybatis工程;打印调起Mybatis工程时的SQL语句,获得SQL文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的待审计映射文件;根据预设编写格式对待审计映射文件进行格式调整,获得标准映射文件;对标准映射文件中的select语句进行提取,获得select语句文件;对select语句文件中的内容进行文件重写,得到新的映射文件;根据新的映射文件构造Mybatis工程;运行Mybatis工程打印SQL语句,获得SQL文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当检测到携带有映射文件标识的文件获取指令时,根据映射文件标识获取对应的映射文件;根据预设文件格式对映射文件进行语法验证,确定映射文件是否通过语法验证;将通过语法验证的映射文件作为待审计映射文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据预设文件格式对映射文件中的开头内容和结尾内容进行匹配,确定开头内容的格式和结尾内容的格式是否与预设文件格式相同;当开头内容的格式和结尾内容的格式与预设文件格式相同,确定映射文件通过语法验证;当开头内容的格式和结尾内容的格式与预设文件格式不相同,确定映射文件未通过语法验证。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对select语句文件进行遍历,提取出select语句文件中各select标签中的关键信息;根据关键信息进行文件重写,获得新的映射文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据关键信息对select语句文件中的内容进行简化,获得新的映射文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据新的映射文件和关键信息,生成Mybatis工程所需的接口类文件、实体类文件及测试类文件;根据接口类文件、实体类文件及测试类文件构造Mybatis工程。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过编译并运行测试类文件,与接口类文件、实体类文件进行交互调起Mybatis工程;打印调起Mybatis工程时的SQL语句,获得SQL文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种SQL提取方法,所述方法包括:
当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的待审计映射文件;
根据预设编写格式对所述待审计映射文件进行格式调整,获得标准映射文件;
对标准映射文件中的select语句进行提取,获得select语句文件;
对所述select语句文件中的内容进行文件重写,得到新的映射文件;
根据所述新的映射文件构造Mybatis工程;
运行所述Mybatis工程打印SQL语句,获得SQL文件。
2.根据权利要求1所述的方法,其特征在于,所述当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的待审计映射文件的步骤,包括:
当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的映射文件;
根据预设文件格式对所述映射文件进行语法验证,确定所述映射文件是否通过语法验证;
将通过语法验证的映射文件作为待审计映射文件。
3.根据权利要求2所述的方法,其特征在于,所述根据预设文件格式对所述映射文件进行语法验证,确定所述映射文件是否通过语法验证的步骤,包括:
根据预设文件格式对所述映射文件中的开头内容和结尾内容进行匹配,确定所述开头内容的格式和所述结尾内容的格式是否与预设文件格式相同;
当所述开头内容的格式和所述结尾内容的格式与预设文件格式相同,确定所述映射文件通过语法验证;
当所述开头内容的格式和所述结尾内容的格式与预设文件格式不相同,确定所述映射文件未通过语法验证。
4.根据权利要求1所述的方法,其特征在于,所述对所述select语句文件中的内容进行文件重写,得到新的映射文件的步骤,包括:
对所述select语句文件进行遍历,提取出所述select语句文件中各select标签中的关键信息;
根据所述关键信息进行文件重写,获得新的映射文件。
5.根据权利要求4所述的方法,其特征在于,所述根据所述关键信息进行文件重写,获得新的映射文件的步骤,包括:
根据所述关键信息对所述select语句文件中的内容进行简化,获得新的映射文件。
6.根据权利要求4所述的方法,其特征在于,所述根据所述新的映射文件构造Mybatis工程的步骤,包括:
根据所述新的映射文件和所述关键信息,生成Mybatis工程所需的接口类文件、实体类文件及测试类文件;
根据所述接口类文件、所述实体类文件及所述测试类文件构造Mybatis工程。
7.根据权利要求6所述的方法,其特征在于,所述运行所述Mybatis工程打印SQL语句,获得SQ L文件的步骤,包括:
通过编译并运行所述测试类文件,与所述接口类文件、所述实体类文件进行交互调起所述Mybatis工程;
打印调起所述Mybatis工程时的SQL语句,获得SQL文件。
8.一种SQL提取装置,其特征在于,所述装置包括:
指令检测模块,用于当检测到携带有映射文件标识的文件获取指令时,根据所述映射文件标识获取对应的待审计映射文件;
格式调整模块,用于根据预设编写格式对所述待审计映射文件进行格式调整,获得标准映射文件;
select语句提取模块,用于对标准映射文件中的select语句进行提取,获得select语句文件;
文件重写模块,用于对所述select语句文件中的内容进行文件重写,得到新的映射文件;
Mybatis工程构造模块,用于根据所述新的映射文件构造Mybatis工程;
打印SQL语句模块,用于运行所述Mybatis工程打印SQL语句,获得SQL文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910882324.5A CN110765152B (zh) | 2019-09-18 | 2019-09-18 | Sql提取方法、装置、计算机设备和存储介质 |
PCT/CN2019/116307 WO2021051501A1 (zh) | 2019-09-18 | 2019-11-07 | Sql提取方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910882324.5A CN110765152B (zh) | 2019-09-18 | 2019-09-18 | Sql提取方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110765152A CN110765152A (zh) | 2020-02-07 |
CN110765152B true CN110765152B (zh) | 2023-05-30 |
Family
ID=69329702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910882324.5A Active CN110765152B (zh) | 2019-09-18 | 2019-09-18 | Sql提取方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110765152B (zh) |
WO (1) | WO2021051501A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656036B (zh) * | 2020-05-12 | 2024-03-01 | 深圳兆日科技股份有限公司 | 基于Mybatis的编译方法、装置、终端及介质 |
CN112988595A (zh) * | 2021-04-25 | 2021-06-18 | 深圳壹账通智能科技有限公司 | 动态同步测试方法、装置、设备及存储介质 |
CN114296734A (zh) * | 2021-12-23 | 2022-04-08 | 广东悦伍纪网络技术有限公司 | Sql语句解析方法、装置、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540704A (zh) * | 2009-05-05 | 2009-09-23 | 北京神舟航天软件技术有限公司 | 不可信dbms恶意入侵检测系统及方法 |
CN105487864A (zh) * | 2015-11-26 | 2016-04-13 | 北京京东尚科信息技术有限公司 | 代码自动生成的方法和装置 |
US9514205B1 (en) * | 2015-09-04 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for importing data from electronic data files |
CN106778288A (zh) * | 2015-11-24 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 一种数据脱敏的方法及系统 |
CN108121542A (zh) * | 2017-11-17 | 2018-06-05 | 广东睿江云计算股份有限公司 | 一种基于MyBatis的SQL语句的配置方法、系统 |
CN108345646A (zh) * | 2018-01-16 | 2018-07-31 | 广东电网有限责任公司信息中心 | 一种运用拦截技术快速自动构建多维度报表的方法 |
CN109271403A (zh) * | 2018-09-28 | 2019-01-25 | 北京京东金融科技控股有限公司 | 一种数据查询的操作方法、装置、介质及电子设备 |
CN110046170A (zh) * | 2019-04-22 | 2019-07-23 | 深圳乐信软件技术有限公司 | 基于多文件管理的语句执行方法、装置、设备和介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7711692B2 (en) * | 2004-11-12 | 2010-05-04 | International Business Machines Corporation | Method, system and program product for rewriting view statements in structured query language (SQL) statements |
CN107066546B (zh) * | 2017-03-20 | 2021-03-09 | 国家计算机网络与信息安全管理中心 | 一种基于mpp引擎的跨数据中心快速查询方法和系统 |
-
2019
- 2019-09-18 CN CN201910882324.5A patent/CN110765152B/zh active Active
- 2019-11-07 WO PCT/CN2019/116307 patent/WO2021051501A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540704A (zh) * | 2009-05-05 | 2009-09-23 | 北京神舟航天软件技术有限公司 | 不可信dbms恶意入侵检测系统及方法 |
US9514205B1 (en) * | 2015-09-04 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for importing data from electronic data files |
CN106778288A (zh) * | 2015-11-24 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 一种数据脱敏的方法及系统 |
CN105487864A (zh) * | 2015-11-26 | 2016-04-13 | 北京京东尚科信息技术有限公司 | 代码自动生成的方法和装置 |
CN108121542A (zh) * | 2017-11-17 | 2018-06-05 | 广东睿江云计算股份有限公司 | 一种基于MyBatis的SQL语句的配置方法、系统 |
CN108345646A (zh) * | 2018-01-16 | 2018-07-31 | 广东电网有限责任公司信息中心 | 一种运用拦截技术快速自动构建多维度报表的方法 |
CN109271403A (zh) * | 2018-09-28 | 2019-01-25 | 北京京东金融科技控股有限公司 | 一种数据查询的操作方法、装置、介质及电子设备 |
CN110046170A (zh) * | 2019-04-22 | 2019-07-23 | 深圳乐信软件技术有限公司 | 基于多文件管理的语句执行方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021051501A1 (zh) | 2021-03-25 |
CN110765152A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765152B (zh) | Sql提取方法、装置、计算机设备和存储介质 | |
CN109901834B (zh) | 文档页面生成方法、装置、计算机设备和存储介质 | |
US10325099B2 (en) | Managing sensitive production data | |
US8117219B2 (en) | Generation of updatable anonymized data records for testing and developing purposes | |
US9588872B2 (en) | Discovery of code paths | |
WO2021217846A1 (zh) | 接口数据处理方法、装置、计算机设备和存储介质 | |
US8214393B2 (en) | Integrating database deployment with code deployment | |
CN104572463A (zh) | 测试接口信息的方法及装置 | |
CN115827895A (zh) | 一种漏洞知识图谱处理方法、装置、设备及介质 | |
US11914574B2 (en) | Generation of inconsistent testing data | |
JP2017174418A (ja) | モデルチェックのためのデータ構造抽象化 | |
US11741000B2 (en) | Method and system for verifying resulting behavior of graph query language | |
US20220245125A1 (en) | Dataset multiplexer for data processing system | |
CN115357590A (zh) | 针对数据变更的记录方法、装置、电子设备及存储介质 | |
US10162629B1 (en) | Compiler independent identification of application components | |
CN113010550B (zh) | 结构化数据的批处理对象生成、批处理方法和装置 | |
CN113515444B (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
US11443047B2 (en) | Systems and methods for use in validating artifacts for deployment | |
US20240069907A1 (en) | Software development context history operations | |
CN114327377B (zh) | 需求跟踪矩阵生成方法、装置、计算机设备及存储介质 | |
CN110795451B (zh) | Sql指纹还原方法、装置、计算机设备和存储介质 | |
US20240126526A1 (en) | Building Reliable and Fast Container Images | |
LEHRHUBER | Pdf support for qualitative research in the cloud | |
CN117435176A (zh) | 信息展示方法、装置、计算机设备、存储介质和程序产品 | |
JP2017207876A (ja) | ダンプマスクプログラム、ダンプマスク方法、および情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |