CN115809290A - 生成数据持久层入参方法、装置、设备及介质 - Google Patents

生成数据持久层入参方法、装置、设备及介质 Download PDF

Info

Publication number
CN115809290A
CN115809290A CN202211131430.8A CN202211131430A CN115809290A CN 115809290 A CN115809290 A CN 115809290A CN 202211131430 A CN202211131430 A CN 202211131430A CN 115809290 A CN115809290 A CN 115809290A
Authority
CN
China
Prior art keywords
interface
statement
data
information
file
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.)
Pending
Application number
CN202211131430.8A
Other languages
English (en)
Inventor
何辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pingan Payment Technology Service Co Ltd
Original Assignee
Pingan Payment Technology Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pingan Payment Technology Service Co Ltd filed Critical Pingan Payment Technology Service Co Ltd
Priority to CN202211131430.8A priority Critical patent/CN115809290A/zh
Publication of CN115809290A publication Critical patent/CN115809290A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及数据处理技术领域,提供一种生成数据持久层入参方法、装置、设备及介质。通过获取数据持久层文件夹路径和映射文件夹路径;根据数据持久层文件夹路径、映射文件夹路径读取所有数据访问对象文件、所有映射文件;获取每个数据访问对象文件中各接口的接口信息及每个映射文件中各查询语句的语句信息;进行接口信息与语句信息的匹配,以获取接口与查询语句的对应关系;对每个查询语句进行解析,找到所有目标占位符所对应的参数字段,作为对应的查询语句的参数字段;将每个查询语句的参数字段构建为预设格式数据,作为查询语句对应的接口的入参数据。利用本发明,能够方便准确的获取数据持久层接口的入参数据,缩短测试周期。

Description

生成数据持久层入参方法、装置、设备及介质
技术领域
本发明数据处理技术领域,特别涉及一种生成数据持久层入参方法、装置、设备及介质。
背景技术
目前项目代码都是通过Dao层各个java文件中的接口来操作下面各个XML文件中的SQL语句。而去O的主要工作就是要修改XML中的SQL语句,把SQL语句中的Oracle相关的语法改成Mysq1相关的语法,当SQL语句中的语法修改完成后,需要对调用SQL语句的Dao层文件进行验证。
由于改动的是最底层的SQL语句,但是验证的话,需要通过Dao层文件中的接口来验证。这就会带来如下问题:
SQL语句的语法改造是由开发人员进行,而对Dao层文件的验证由测试人员进行,这就会导致测试人员在构建Dao层文件的入参时比较麻烦和困难,人力手工成本高;
每个项目的Dao层文件太多,每个Dao层文件中的接口也多,这就会导致测试人员在构建这些接口的入参时更加麻烦和困难,人力手工成本更高。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种生成数据持久层入参方法、装置、设备及介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
第一方面,提供了一种基于查询语句生成数据持久层入参的方法,包括:
获取数据持久层文件夹路径和映射文件夹路径;
根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;
获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;
进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;
对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;
将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据。
第二方面,提供了一种基于查询语句生成数据持久层入参装置,包括:
路径获取模块,用于获取数据持久层文件夹路径和映射文件夹路径;
文件读取模块,用于根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;
信息列表获取模块,用于获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;
信息匹配模块,用于进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;
参数字段获取模块,用于对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;
入参数据构建模块,用于将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据。
第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于查询语句生成数据持久层入参方法的步骤。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述基于查询语句生成数据持久层入参方法的步骤。
上述基于查询语句生成数据持久层入参方法、装置、设备及介质,通过获取数据持久层文件夹路径和映射文件夹路径;根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据,从而非常方便的获得数据持久层接口的入参数据,省去测试人员手动编写数据持久层接口入参数据,节省人力手工成本;并且本发明是根据查询语句中的条件参数来构建数据持久层接口的入参数据,故而获取的数据持久层接口的入参数据非常精准。
附图说明
图1示出了DAO层接口与XML映射文件中SQL语句的操作方式示意图。
图2示出了本发明的基于查询语句生成数据持久层入参方法的一应用环境示意图。
图3本发明的基于查询语句生成数据持久层入参方法的一流程示意图。
图4示出了本发明的基于查询语句生成数据持久层入参装置的一功能模块图。
图5示出了本发明的基于查询语句生成数据持久层入参方法的电子设备的一结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅图1-5。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
如图1所示,目前项目代码都是通过DAO层各个DAO文件(图1中的UserDao.java,BranchDao.java,OrderDao.java等java文件)中的接口来操作下面各个映射文件(图1中的UserMapper.xml,BranchMapper.xml,OrderMapper.xml等XML文件)中的SQL语句。而去O的主要工作就是要修改映射文件中的SQL语句,把SQL语句中的Oracle相关的语法改成Mysql相关的语法,当SQL语句中的语法修改完成后,需要对调用SQL语句的Dao层中的DAO文件(图1中的UserDao.java,BranchDao.java,OrderDao.java)进行验证。
由于改动的是最底层的SQL语句,但是验证的话,需要通过Dao层文件中的接口来验证。SQL语句的语法改造是由开发人员进行,而对Dao层文件的验证由测试人员进行,由于每个项目的Dao层文件很多,每个Dao层文件中的接口也很多,这就会导致测试人员在构建这些接口的入参时更加麻烦和困难,人力手工成本更高。
基于此,本发明实施例提供一种基于查询语句生成数据持久层入参方法,可应用在如图1所示的应用环境中。其中,语句转换插件能够将代码中的查询语句转换为预设格式文件,用于测试人员做数据持久层接口的测试。具体地,SQL转json插件获取数据持久层文件夹路径和映射文件夹路径;根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据,从而非常方便的获得数据持久层接口的入参数据,省去测试人员手动编写数据持久层接口入参数据,节省人力手工成本;并且本发明是根据查询语句中的条件参数来构建数据持久层接口的入参数据,故而获取的数据持久层接口的入参数据非常精准。并且语句转换插件还可将每个所述接口的接口信息和入参数据,与该接口对应的所述查询语句的语句信息合并成一个整体,作为该接口的接口入参文件,并将所有所述接口的接口入参文件保存到一个预设格式文件中,作为数据持久层入参文件,从而能够方便的利用数据持久层入参文件进行数据持久层接口测试,极大缩短测试周期。
在本实施例中,如图2所示,所述语句转换插件为SQL转json,所述查询语句可以是SQL语句,所述预设格式文件可以为json文件,所述数据持久层为DAO层,所述数据访问对象文件为DAO文件。
请参阅图3所示,图3为本发明实施例提供的基于查询语句生成数据持久层入参的方法的一个流程示意图。本发明实施例的基于查询语句生成数据持久层入参的方法,包括如下步骤:
步骤S10:获取数据持久层文件夹路径和映射文件夹路径;
步骤S20:根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;
步骤S30:获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;
步骤S40:进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;
步骤S50:对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;
步骤S60:将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据;
步骤S70:将每个所述接口的接口信息和入参数据,与该接口对应的所述查询语句的语句信息合并成一个整体,作为该接口的接口入参文件;
步骤S80:将所有所述接口的接口入参文件保存到一个预设格式文件中,作为数据持久层入参文件。
在本实施例中,将以所述语句转换插件为SQL转json,所述查询语句为SQL语句,所述预设格式文件为json文件,所述数据持久层为DAO层,所述数据访问对象文件为DAO文件来详细阐述本发明的技术方案。
首先,执行步骤S10:获取数据持久层文件夹路径和映射文件夹路径。在本实施例中,数据持久层可以是DAO层,映射文件为XML文件,数据持久层文件夹路径为DAO层文件夹路径,映射文件夹路径为XML文件夹路径。
请参阅图1,图1中DAO层中,包括UserDao.java,BranchDao.java,OrderDao.java等不同java文件(定义为DAO文件)。对于每个DAO层文件夹路径是指这些DAO文件的磁盘文件夹路径(也称为目录),其中,DAO层文件夹路径可以包括不同的磁盘文件夹路径,但一般是包括一到两个磁盘文件夹路径。
继续参阅图1,每个DAO文件都对应着一个XML文件(定义为映射文件),映射文件夹路径是指UserMapper.xml,BranchMapper.xml,OrderMapper.xml等XML文件的磁盘文件夹的路径。同理,映射文件夹路径可以包括不同的磁盘文件夹路径,但一般是包括一到两个磁盘文件夹路径。
接着,执行步骤S20:根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句。
获取到DAO层文件夹路径后,就可以根据DAO层文件夹路径从DAO层文件夹路径对应的目录下读取所有的java文件,每个java文件记为一个DAO文件,其中,每个DAO文件中包括至少至少一个接口。
同理,获取到映射文件夹路径后,可以根据映射文件夹路径从映射文件夹路径对应的目录下读取所有的XML文件,每个XML文件记为一个映射文件,其中,每个所述映射文件中包括至少一个SQL语句接口。
接着,执行步骤S30:获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表。
由于所述DAO文件里面都是接口,故而可以方便的从DAO文件中读取到所有接口的接口信息,从而得到接口信息列表。由于所述映射文件里面都是SQL语句,可以方便的从映射文件中读取到所有SQL语句的SQL信息(定义为语句信息),从而得到SQL信息列表(定义为语句信息列表)。
在一具体实施例中,所述接口信息包括接口类名和接口方法名,所述SQL信息包括SQL所在文件名(定义为语句所在文件名)和SQL标识(定义为语句标识),所述获取每个所述DAO文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述SQL语句的SQL信息,以得到SQL信息列表,可进一步包括:获取每个所述DAO文件中所有接口的接口类名和接口方法名,作为相应接口的所述接口信息,以得到所述接口信息列表;获取每个所述映射文件中所有SQL语句的SQL所在文件名和SQL标识,作为对应SQL语句的所述SQL信息,以得到所述SQL信息列表。
作为示例,在一个DAO文件中,
接口类名为:com.pinganfu.fcscgw.common.dal.dao.ConfigDAO;
接口方法名为:Integer replaceDataByPK(ConfigDO configDO)。
其中,
Figure BDA0003846650550000081
Figure BDA0003846650550000091
该接口对应的SQL语句如下:
Figure BDA0003846650550000092
上述SQL语句中,读取namespace的值作为SQL所在文件名,也即SQL所在文件名为:com.pinganfu.fcscgw.common.dal.dao.ConfigDAO;读取id的值作为SQL标识,也即SQL标识为:replaceDataByPK。可以看出接口的接口类名与SQL语句的SQL所在文件名相同,接口的接口方法名与SQL语句的标识相同。
接着,执行步骤S40:进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系。
在一示例性实施例中,步骤S40进一步包括:对于每个接口,在所述语句信息列表中查找出语句所在文件名与该接口的接口信息中的接口类名相匹配,且语句标识与该接口的接口信息中的接口方法名相匹配的所述语句信息,将查找出的所述语句信息所对应的查询语句与该接口建立对应关系。
接上述示例,由于接口的接口类名与对应SQL语句的SQL所在文件名相同,接口的接口方法名与对应SQL语句的SQL标识相同,据此,就可以建立接口与SQL语句的对应关系。具体地,对于每个接口,在所述SQL信息列表中查找出SQL所在文件名与该接口的接口信息中的接口类名相匹配,且SQL标识与该接口的接口信息中的接口方法名相匹配的所述SQL信息,将查找出的所述SQL信息所对应的SQL语句与该接口建立对应关系。
接着,执行步骤S50:对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段。
在一示例性实施例中,步骤S50进一步包括:对每个所述查询语句进行解析,找到所述查询语句中的所有的所述目标占位符;获取与每个所述目标占位符通过运算符关联的参数字段,作为对应的所述查询语句的参数字段。
在本实施例中,所述目标占位符包括“?”号。对每个所述SQL语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述SQL语句的参数字段可进一步包括:对每个所述SQL语句进行解析,找到所述SQL语句中的所有“?”号;获取与每个所述“?”号通过运算符关联的参数字段,作为对应的所述SQL语句的参数字段,其中,所述运算符例如可以是等于号“=”、不等于号“<>”、大于号“>”、小于号“<”、大于等于号“>=”、小于等于号“<=”等等。
仍以上述示例的SQL语句为例,可以先找出SQL语句中的所有?号,获取与每个?号的左边通过运算符关联的参数字段,分别是“CONFIG_KEY”,“CONFIG_VALUE”,“CONFIG_DESC”,“EXT_FIELD”,“STATUS”,“UPDATOR”及“ID”,将这些参数字段转换为驼峰式,分别是“configKey”,“configValue”,“configDesc”,“extField”,“status”,“updator”,“id”。
接着,执行步骤S60:将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据。
具体地,预设格式为json格式,故而所述将每个所述SQL语句的参数字段构建为预设格式数据,作为所述SQL语句对应的所述接口的入参数据,可具体包括将每个所述SQL语句的参数字段构建为json格式数据,作为所述SQL语句对应的所述接口的入参数据。
接续上述示例,可以将获取的“configKey”,“configValue”,“configDesc”,“extField”,“status”,“updator”,“id”等参数字段转换为如下形式的json格式数据:
{
“configKey”:“xxx”,
“configValue”:“xxx”,
“configDesc”:“xxx”,
“extField”:“xxx”,
“status”:“xxx”,
“updator”:“xxx”,
“id”:“xxx”
}
测试人员就可以拿到这样的json格式数据进行请求SQL语句对应的DAO层接口了。
由于入参数据是根据SQL语句中的参数字段(条件参数)来构建DAO层接口的入参数据,故而获取的DAO层接口的入参数据非常精准。
接着,执行步骤S70:将每个所述接口的接口信息和入参数据,与该接口对应的所述查询语句的语句信息合并成一个整体,作为该接口的接口入参文件。从而通过一个接口的接口入参文件,可以获得接口信息、SQL信息、json格式的入参数据。
最后,执行步骤S80:将所有所述接口的接口入参文件保存到一个预设格式文件中,作为数据持久层入参文件。
由于整个DAO层中包含很多个DAO文件,而每个DAO文件包括至少一个接口,故而DAO层入参文件是包括DAO层所有接口入参文件,故而能够方便的利用DAO层入参文件进行DAO层接口测试,极大缩短测试周期。
需要说明的是,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
综上所述,本发明的基于查询语句生成数据持久层入参方法,通过获取数据持久层文件夹路径和映射文件夹路径;根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据,从而非常方便的获得数据持久层接口的入参数据,省去测试人员手动编写数据持久层接口入参数据,节省人力手工成本。
本发明的基于查询语句生成数据持久层入参方法,是根据SQL语句中的条件参数来构建DAO层接口的入参数据,故而获取的DAO层接口的入参数据非常精准。
本发明的基于查询语句生成数据持久层入参方法,将每个所述接口的接口信息和入参数据,与该接口对应的所述SQL语句的SQL信息合并成一个整体,作为该接口的接口入参文件,并将所有所述接口的接口入参文件保存到一个预设格式文件中,作为DAO层入参文件,从而能够方便的利用DAO层入参文件进行DAO层接口测试,极大缩短测试周期。
图4为本发明实施例提供的基于查询语句生成数据持久层入参装置11的一个功能模块图。请参阅图5所示,所述基于查询语句生成数据持久层入参装置11,包括路径获取模块111、文件读取模块112、信息列表获取模块113、信息匹配模块114、参数字段获取模块115、入参数据构建模块116、接口入参文件获取模块117以及DAO层入参文件获取模块118。
所述路径获取模块111用于获取数据持久层文件夹路径和映射文件夹路径。在本实施例中,数据持久层可以是DAO层,映射文件为XML文件,数据持久层文件夹路径为DAO层文件夹路径,DAO层文件夹路径是DAO层中DAO文件的磁盘文件夹路径;映射文件夹路径为XML文件夹路径,XML文件夹路径是XML文件的磁盘文件夹的路径。
所述文件读取模块112用于根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句。
获取到DAO层文件夹路径后,所述文件读取模块112就可以根据DAO层文件夹路径从DAO层文件夹路径对应的目录下读取所有的java文件,每个java文件记为一个DAO文件,其中,每个DAO文件中包括至少至少一个接口。
同理,通过所述路径获取模块111获取到映射文件夹路径后,所述文件读取模块112就可以根据映射文件夹路径从映射文件夹路径对应的目录下读取所有的XML文件,每个XML文件记为一个映射文件,其中,每个所述映射文件中包括至少一个SQL语句接口。
所述信息列表获取模块113用于获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表。
由于所述DAO文件里面都是接口,故而可以方便的从DAO文件中读取到所有接口的接口信息,从而得到接口信息列表。由于所述映射文件里面都是SQL语句,可以方便的从映射文件中读取到所有SQL语句的SQL信息(定义为语句信息),从而得到SQL信息列表(定义为语句信息列表)。
在一具体实施例中,所述接口信息包括接口类名和接口方法名,所述SQL信息包括SQL所在文件名(定义为语句所在文件名)和SQL标识(定义为语句标识),所述获取每个所述DAO文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述SQL语句的SQL信息,以得到SQL信息列表,可进一步包括:获取每个所述DAO文件中所有接口的接口类名和接口方法名,作为相应接口的所述接口信息,以得到所述接口信息列表;获取每个所述映射文件中所有SQL语句的SQL所在文件名和SQL标识,作为对应SQL语句的所述SQL信息,以得到所述SQL信息列表。
作为示例,在一个DAO文件中,
接口类名为:com.pinganfu.fcscgw.common.dal.dao.ConfigDAO;
接口方法名为:Integer replaceDataByPK(ConfigDO configDO)。
其中,
Figure BDA0003846650550000141
Figure BDA0003846650550000151
该接口对应的SQL语句如下:
Figure BDA0003846650550000152
上述SQL语句中,读取namespace的值作为SQL所在文件名,也即SQL所在文件名为:com.pinganfu.fcscgw.common.dal.dao.ConfigDAO;读取id的值作为SQL标识,也即SQL标识为:replaceDataByPK。可以看出接口的接口类名与SQL语句的SQL所在文件名相同,接口的接口方法名与SQL语句的标识相同。
所述信息匹配模块114用于进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系。
在一示例性实施例中,所述信息匹配模块114对于每个接口,在所述语句信息列表中查找出语句所在文件名与该接口的接口信息中的接口类名相匹配,且语句标识与该接口的接口信息中的接口方法名相匹配的所述语句信息,将查找出的所述语句信息所对应的查询语句与该接口建立对应关系。
接上述示例,由于接口的接口类名与对应SQL语句的SQL所在文件名相同,接口的接口方法名与对应SQL语句的SQL标识相同,据此,就可以建立接口与SQL语句的对应关系。具体地,所述信息匹配模块114对于每个接口,在所述SQL信息列表中查找出SQL所在文件名与该接口的接口信息中的接口类名相匹配,且SQL标识与该接口的接口信息中的接口方法名相匹配的所述SQL信息,将查找出的所述SQL信息所对应的SQL语句与该接口建立对应关系。
所述参数字段获取模块115用于对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段。在一示例性实施例中,所述参数字段获取模块115首先对每个所述查询语句进行解析,找到所述查询语句中的所有的所述目标占位符;接着,获取与每个所述目标占位符通过运算符关联的参数字段,作为对应的所述查询语句的参数字段。
在本实施例中,所述目标占位符包括“?”号。对每个所述SQL语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述SQL语句的参数字段可进一步包括:对每个所述SQL语句进行解析,找到所述SQL语句中的所有“?”号;获取与每个所述“?”号通过运算符关联的参数字段,作为对应的所述SQL语句的参数字段,其中,所述运算符例如可以是等于号“=”、不等于号“<>”、大于号“>”、小于号“<”、大于等于号“>=”、小于等于号“<=”等等。
仍以上述示例的SQL语句为例,可以先找出SQL语句中的所有?号,获取与每个?号的左边通过运算符关联的参数字段,分别是“CONFIG_KEY”,“CONFIG_VALUE”,“CONFIG_DESC”,“EXT_FIELD”,“STATUS”,“UPDATOR”及“ID”,将这些参数字段转换为驼峰式,分别是“configKey”,“configValue”,“configDesc”,“extField”,“status”,“updator”,“id”。
所述入参数据构建模块116用于将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据。
具体地,预设格式为json格式,故而所述入参数据构建模块116,可具体用于将每个所述SQL语句的参数字段构建为json格式数据,作为所述SQL语句对应的所述接口的入参数据。
接续上述示例,可以将获取的“configKey”,“configValue”,“configDesc”,“extField”,“status”,“updator”,“id”等参数字段转换为如下形式的json格式数据:
{
“configKey”:“xxx”,
“configValue”:“xxx”,
“configDesc”:“xxx”,
“extField”:“xxx”,
“status”:“xxx”,
“updator”:“xxx”,
“id”:“xxx”
}
测试人员就可以拿到这样的json格式数据进行请求SQL语句对应的DAO层接口了。
由于入参数据是根据SQL语句中的参数字段(条件参数)来构建DAO层接口的入参数据,故而获取的DAO层接口的入参数据非常精准。
所述接口入参文件获取模块117用于将每个所述接口的接口信息和入参数据,与该接口对应的所述查询语句的语句信息合并成一个整体,作为该接口的接口入参文件。从而通过一个接口的接口入参文件,可以获得接口信息、SQL信息、json格式的入参数据。
所述DAO层入参文件获取模块118用于将所有所述接口的接口入参文件保存到一个预设格式文件中,作为数据持久层入参文件。
由于整个DAO层中包含很多个DAO文件,而每个DAO文件包括至少一个接口,故而DAO层入参文件是包括DAO层所有接口入参文件,故而能够方便的利用DAO层入参文件进行DAO层接口测试,极大缩短测试周期。
需要说明的是,本实施例的基于查询语句生成数据持久层入参装置是与上述基于查询语句生成数据持久层入参方法相对应的装置,基于查询语句生成数据持久层入参装置中的功能模块或者分别对应基于查询语句生成数据持久层入参方法中的相应步骤。本实施例的基于查询语句生成数据持久层入参装置可与基于查询语句生成数据持久层入参方法相互相配合实施。相应地,本实施例的基于查询语句生成数据持久层入参装置中提到的相关技术细节也可应用在上述基于查询语句生成数据持久层入参方法中。
需要说明的是,上述的各功能模块实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的部分或全部步骤,或以上的各功能模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
综上所述,本发明的基于查询语句生成数据持久层入参装置,通过获取数据持久层文件夹路径和映射文件夹路径;根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据,从而非常方便的获得数据持久层接口的入参数据,省去测试人员手动编写数据持久层接口入参数据,节省人力手工成本。
本发明的基于查询语句生成数据持久层入参装置,是根据SQL语句中的条件参数来构建DAO层接口的入参数据,故而获取的DAO层接口的入参数据非常精准。
本发明的基于查询语句生成数据持久层入参装置,将每个所述接口的接口信息和入参数据,与该接口对应的所述SQL语句的SQL信息合并成一个整体,作为该接口的接口入参文件,并将所有所述接口的接口入参文件保存到一个预设格式文件中,作为DAO层入参文件,从而能够方便的利用DAO层入参文件进行DAO层接口测试,极大缩短测试周期。
如图5所示,是本发明实现基于查询语句生成数据持久层入参方法的电子设备的一种结构示意图。
所述电子设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如基于查询语句生成数据持久层入参程序。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于查询语句生成数据持久层入参的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述电子设备1的控制核心(Control Unit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如基于查询语句生成数据持久层入参程序等),以及调用存储在所述存储器12内的数据,以执行电子设备1的各种功能和处理数据。
所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述基于查询语句生成数据持久层入参方法中的步骤,例如图3所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成路径获取模块111、文件读取模块112、信息列表获取模块113、信息匹配模块114、参数字段获取模块115、入参数据构建模块116、接口入参文件获取模块117以及DAO层入参文件获取模块118。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中,所述计算机可读存储介质可以是非易失性,也可以是易失性。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述基于查询语句生成数据持久层入参方法的部分功能。
本发明的基于查询语句生成数据持久层入参方法,通过获取DAO层文件夹路径和映射文件夹路径;根据所述DAO层文件夹路径读取所有的DAO文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述DAO文件包括至少一个接口,每个所述映射文件中包括至少一个SQL语句;获取每个所述DAO文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述SQL语句的SQL信息,以得到SQL信息列表;进行所述接口信息与所述SQL信息的匹配,以获取所述接口与所述SQL语句的对应关系;对每个所述SQL语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述SQL语句的参数字段;将每个所述SQL语句的参数字段构建为预设格式数据,作为所述SQL语句对应的所述接口的入参数据,从而非常方便的获得DAO层接口的入参数据,省去测试人员手动编写DAO层接口入参数据,节省人力手工成本。
本发明的基于查询语句生成数据持久层入参方法、装置、设备及介质,是根据SQL语句中的条件参数来构建DAO层接口的入参数据,故而获取的DAO层接口的入参数据非常精准。
本发明的基于查询语句生成数据持久层入参方法、装置、设备及介质,将每个所述接口的接口信息和入参数据,与该接口对应的所述SQL语句的SQL信息合并成一个整体,作为该接口的接口入参文件,并将所有所述接口的接口入参文件保存到一个预设格式文件中,作为DAO层入参文件,从而能够方便的利用DAO层入参文件进行DAO层接口测试,极大缩短测试周期。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种基于查询语句生成数据持久层入参的方法,其特征在于,包括:
获取数据持久层文件夹路径和映射文件夹路径;
根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;
获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;
进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;
对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;
将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据。
2.根据权利要求1所述的基于查询语句生成数据持久层入参的方法,其特征在于,所述获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表,具体包括:
获取每个所述数据访问对象文件中所有接口的接口类名和接口方法名,作为相应接口的所述接口信息,以得到所述接口信息列表;
获取每个所述映射文件中所有查询语句的语句所在文件名和语句标识,作为对应查询语句的所述语句信息,以得到所述语句信息列表。
3.根据权利要求2所述的基于查询语句生成数据持久层入参的方法,其特征在于,所述进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系,具体包括:
对于每个接口,在所述语句信息列表中查找出语句所在文件名与该接口的接口信息中的接口类名相匹配,且语句标识与该接口的接口信息中的接口方法名相匹配的所述语句信息,将查找出的所述语句信息所对应的查询语句与该接口建立对应关系。
4.根据权利要求1所述的基于查询语句生成数据持久层入参的方法,其特征在于,所述对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段,具体包括:
对每个所述查询语句进行解析,找到所述查询语句中的所有的所述目标占位符;
获取与每个所述目标占位符通过运算符关联的参数字段,作为对应的所述查询语句的参数字段。
5.根据权利要求1所述的基于查询语句生成数据持久层入参的方法,其特征在于,所述将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据,具体包括:
将每个所述查询语句的参数字段构建为json格式数据,作为所述查询语句对应的所述接口的入参数据。
6.根据权利要求1所述的基于查询语句生成数据持久层入参的方法,其特征在于,还包括:
将每个所述接口的接口信息和入参数据,与该接口对应的所述查询语句的语句信息合并成一个整体,作为该接口的接口入参文件。
7.根据权利要求6所述的基于查询语句生成数据持久层入参的方法,其特征在于,还包括:
将所有所述接口的接口入参文件保存到一个预设格式文件中,作为数据持久层入参文件。
8.一种基于查询语句生成数据持久层入参装置,其特征在于,包括:
路径获取模块,用于获取数据持久层文件夹路径和映射文件夹路径;
文件读取模块,用于根据所述数据持久层文件夹路径读取所有的数据访问对象文件,根据所述映射文件夹路径读取所有映射文件,其中,每个所述数据访问对象文件包括至少一个接口,每个所述映射文件中包括至少一个查询语句;
信息列表获取模块,用于获取每个所述数据访问对象文件中所有所述接口的接口信息,以得到接口信息列表,获取每个所述映射文件中所有所述查询语句的语句信息,以得到语句信息列表;
信息匹配模块,用于进行所述接口信息与所述语句信息的匹配,以获取所述接口与所述查询语句的对应关系;
参数字段获取模块,用于对每个所述查询语句进行解析,找到每个目标占位符所对应的参数字段,作为对应的所述查询语句的参数字段;
入参数据构建模块,用于将每个所述查询语句的参数字段构建为预设格式数据,作为所述查询语句对应的所述接口的入参数据。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储于计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
CN202211131430.8A 2022-09-15 2022-09-15 生成数据持久层入参方法、装置、设备及介质 Pending CN115809290A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211131430.8A CN115809290A (zh) 2022-09-15 2022-09-15 生成数据持久层入参方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211131430.8A CN115809290A (zh) 2022-09-15 2022-09-15 生成数据持久层入参方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115809290A true CN115809290A (zh) 2023-03-17

Family

ID=85482615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211131430.8A Pending CN115809290A (zh) 2022-09-15 2022-09-15 生成数据持久层入参方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115809290A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881930A (zh) * 2023-09-07 2023-10-13 思客云(北京)软件技术有限公司 一种基于orm框架的sql注入漏洞的分析方法与装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881930A (zh) * 2023-09-07 2023-10-13 思客云(北京)软件技术有限公司 一种基于orm框架的sql注入漏洞的分析方法与装置
CN116881930B (zh) * 2023-09-07 2023-11-21 思客云(北京)软件技术有限公司 一种基于orm框架的sql注入漏洞的分析方法与装置

Similar Documents

Publication Publication Date Title
WO2020000706A1 (zh) 基于数据库比对的接口测试方法、系统、设备和存储介质
CN107122368B (zh) 一种数据校验方法、装置及电子设备
CN109558525B (zh) 一种测试数据集的生成方法、装置、设备和存储介质
CN111428462A (zh) 通讯协议模板构建的方法及终端设备
CN112148509A (zh) 数据处理方法、装置、服务器及计算机可读存储介质
WO2016026328A1 (zh) 一种信息处理方法、装置及计算机存储介质
TW201439792A (zh) 資料庫訪問系統及方法
CN111581271A (zh) 接口参数确定方法、装置、计算机设备和存储介质
CN114090671A (zh) 数据导入方法、装置、电子设备及存储介质
CN115809290A (zh) 生成数据持久层入参方法、装置、设备及介质
CN114238527A (zh) 基于对象关系映射的数据处理方法和数据处理装置
CN111061733B (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
CN111290961A (zh) 接口测试的管理方法、装置及终端设备
CN109429260B (zh) 一种北向数据的校验方法及装置
CN113822002B (zh) 数据处理方法、装置、计算机设备及存储介质
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理系统
CN113901025A (zh) 数据库管理方法、装置、设备和存储介质
CN113504904A (zh) 用户定义函数实现方法、装置、计算机设备和存储介质
CN112883044A (zh) 用于数据库的数据处理方法、装置及计算机可读介质
CN111198893A (zh) 一种数据更新方法、装置、可读介质及电子设备
CN116755684B (zh) OAS Schema的生成方法、装置、设备及介质
CN111626585B (zh) 脚本数据提取方法、装置、计算机设备和存储介质
CN113704320B (zh) 数据处理方法、装置、电子设备及存储介质
CN116700840B (zh) 文件执行方法、装置、电子设备及可读存储介质
CN117743443A (zh) 数据采集方法、装置、电子设备及存储介质

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