CN114547067A - 基于通用查询结构的sql查询语句生成方法、装置及设备 - Google Patents
基于通用查询结构的sql查询语句生成方法、装置及设备 Download PDFInfo
- Publication number
- CN114547067A CN114547067A CN202210066755.6A CN202210066755A CN114547067A CN 114547067 A CN114547067 A CN 114547067A CN 202210066755 A CN202210066755 A CN 202210066755A CN 114547067 A CN114547067 A CN 114547067A
- Authority
- CN
- China
- Prior art keywords
- query statement
- sql query
- splicing
- query
- statement
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000006870 function Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012216 screening Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000002688 persistence Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
-
- 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/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于通用查询结构的SQL查询语句生成方法、装置、电子设备及计算机可读存储介质。该基于通用查询结构的SQL查询语句生成方法,包括:将待生成的目标SQL查询语句拆解为不同种类的指令对象;拼接不同种类的指令对象,得到目标SQL查询语句各部分的指令信息;将各部分的指令信息进行拼接,生成目标SQL查询语句。根据本申请实施例,能够生成更加满足业务需求的SQL查询语句。
Description
技术领域
本申请属于SQL查询语句生成技术领域,尤其涉及一种基于通用查询结构的SQL查询语句生成方法、装置、电子设备及计算机可读存储介质。
背景技术
表格数据是信息在经过人为整理、归纳后的一种高效的结构化表达形式,其信息的价值、密度和质量高于普通的文字文本。当用户去查询表格中的内容时,需要肉眼去从表格中筛选满足条件的数据,准确率和效率都较低。因此通过SQL语句查询数据是业务中不可获取的,现有的生成的SQL的技术主要是MyBatis、Hibernate等数据持久化的框架。
通过数据持久化的框架生成SQL查询语句,都存在一些不可避免的缺点。首先,灵活程度不够。Hibernate框架无法根据不同的条件组装不同的SQL,无法满足大部分的业务场景。其次,复杂SQL支持不够。Hibernate框架对多表关联和复杂的sql查询支持较差,需要自己写SQL,返回后,需要自己将数据封装为POJO。最后,数据库移植麻烦。Mybatis框架需要根据不同的数据库类型适配不同的方言问题,需要不断的调整SQL。
因此,如何生成更加满足业务需求的SQL查询语句是本领域技术人员亟需解决的技术问题。
发明内容
本申请实施例提供一种基于通用查询结构的SQL查询语句生成方法、装置、电子设备及计算机可读存储介质,能够生成更加满足业务需求的SQL查询语句。
第一方面,本申请实施例提供一种基于通用查询结构的SQL查询语句生成方法,包括:
将待生成的目标SQL查询语句拆解为不同种类的指令对象;
拼接不同种类的指令对象,得到目标SQL查询语句各部分的指令信息;
将各部分的指令信息进行拼接,生成目标SQL查询语句。
可选的,将各部分的指令信息进行拼接,生成目标SQL查询语句,包括:
获取数据库类型以及拼接好的SqlDto结构;
获取selectDtos,拼接select语句;
在无嵌套查询结构的情况下,拼接表名;
依次拼接查询条件和分组排序条件;
在无联合查询的情况下,生成目标SQL查询语句。
可选的,包括:
select语句中field字段的拼接需要根据字段类型拼接出不同的格式;
其中,字段类型包括String类型、Default类型、Function类型及Operation类型。
可选的,还包括:
根据数据库类型,适配对应的方言。
可选的,还包括:
在有嵌套查询结构的情况下,拼接嵌套查询结构。
可选的,还包括:
在有联合查询的情况下,再次拼接SqlDto结构,以及连接条件和筛选条件。
可选的,将各部分的指令信息进行拼接,生成目标SQL查询语句,包括:
将各部分的指令信息存放在不同种类的指令对象中,生成目标SQL查询语句。
第二方面,本申请实施例提供了一种基于通用查询结构的SQL查询语句生成装置,包括:
语句拆解模块,用于将待生成的目标SQL查询语句拆解为不同种类的指令对象;
指令对象拼接模块,用于拼接不同种类的指令对象,得到目标SQL查询语句各部分的指令信息;
SQL查询语句生成模块,用于将各部分的指令信息进行拼接,生成目标SQL查询语句。
可选的,SQL查询语句生成模块,用于:获取数据库类型以及拼接好的SqlDto结构;获取selectDtos,拼接select语句;在无嵌套查询结构的情况下,拼接表名;依次拼接查询条件和分组排序条件;在无联合查询的情况下,生成目标SQL查询语句。
可选的,包括:
select语句中field字段的拼接需要根据字段类型拼接出不同的格式;
其中,字段类型包括String类型、Default类型、Function类型及Operation类型。
可选的,还包括:
方言适配模块,用于根据数据库类型,适配对应的方言。
可选的,还包括:
嵌套查询结构拼接模块,用于在有嵌套查询结构的情况下,拼接嵌套查询结构。
可选的,还包括:
SqlDto结构拼接模块,用于在有联合查询的情况下,再次拼接SqlDto结构,以及连接条件和筛选条件。
可选的,SQL查询语句生成模块,用于:将各部分的指令信息存放在不同种类的指令对象中,生成目标SQL查询语句。
第三方面,本申请实施例提供了一种电子设备,电子设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如第一方面所示的基于通用查询结构的SQL查询语句生成方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面所示的基于通用查询结构的SQL查询语句生成方法。
本申请实施例的基于通用查询结构的SQL查询语句生成方法、装置、电子设备及计算机可读存储介质,能够生成更加满足业务需求的SQL查询语句。
该基于通用查询结构的SQL查询语句生成方法,将待生成的目标SQL查询语句拆解为不同种类的指令对象;先是通过拼接不同种类的指令对象,得到目标SQL查询语句各部分的指令信息;然后将各部分的指令信息进行拼接,故能够生成更加满足业务需求的SQL查询语句。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的基于通用查询结构的SQL查询语句生成方法的流程示意图;
图2是本申请一个实施例提供的基于通用查询结构的SQL查询语句生成方法的流程示意图;
图3是本申请一个实施例提供的基于通用查询结构的SQL查询语句生成装置的结构示意图;
图4是本申请一个实施例提供的电子设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
现有的生成的SQL的技术主要是MyBatis、Hibernate等数据持久化的框架。通过数据持久化的框架生成SQL查询语句,都存在一些不可避免的缺点。首先,灵活程度不够。Hibernate框架无法根据不同的条件组装不同的SQL,无法满足大部分的业务场景。其次,复杂SQL支持不够。Hibernate框架对多表关联和复杂的sql查询支持较差,需要自己写SQL,返回后,需要自己将数据封装为POJO。最后,数据库移植麻烦。Mybatis框架需要根据不同的数据库类型适配不同的方言问题,需要不断的调整SQL。
为了解决现有技术问题,本申请实施例提供了一种基于通用查询结构的SQL查询语句生成方法、装置、电子设备及计算机可读存储介质。下面首先对本申请实施例所提供的基于通用查询结构的SQL查询语句生成方法进行介绍。
图1示出了本申请一个实施例提供的基于通用查询结构的SQL查询语句生成方法的流程示意图。如图1所示,该基于通用查询结构的SQL查询语句生成方法包括:
S101、将待生成的目标SQL查询语句拆解为不同种类的指令对象。
S102、拼接不同种类的指令对象,得到目标SQL查询语句各部分的指令信息。
S103、将各部分的指令信息进行拼接,生成目标SQL查询语句。
SQL查询语句是由不同种类的指令构成的,包括Select查询指令,Where条件指令,GroupBy分组指令,函数指令,关联表查询指令等等,其中比较重要的也就是常用的就是Select查询指令,Where条件指令。
本方案提供的通用查询结构的思想就是将SQL语句拆解为不同种类的指令对象,通过拼接不同种类的指令对象得到SQL各部分的指令信息,最后将这些指令信息拼接成完整的SQL语句,得到可执行的SQL。因此生成SQL的过程就转换为生成标准的通用结构的过程,将想要生成的SQL的各部分指令信息存放在结构的不同指令对象中,就可以得到想要的SQL。
在一个实施例中,将各部分的指令信息进行拼接,生成目标SQL查询语句,包括:
获取数据库类型以及拼接好的SqlDto结构;
获取selectDtos,拼接select语句;
在无嵌套查询结构的情况下,拼接表名;
依次拼接查询条件和分组排序条件;
在无联合查询的情况下,生成目标SQL查询语句。
在一个实施例中,select语句中field字段的拼接需要根据字段类型拼接出不同的格式;
其中,字段类型包括String类型、Default类型、Function类型及Operation类型。
在一个实施例中,该方法还包括:根据数据库类型,适配对应的方言。
在一个实施例中,该方法还包括:在有嵌套查询结构的情况下,拼接嵌套查询结构。
在一个实施例中,该方法还包括:在有联合查询的情况下,再次拼接SqlDto结构,以及连接条件和筛选条件。
在一个实施例中,将各部分的指令信息进行拼接,生成目标SQL查询语句,包括:
将各部分的指令信息存放在不同种类的指令对象中,生成目标SQL查询语句。
为了对上述实施例进行具体说明,下面结合图2进行说明。如流程图2所示,生成SQL具体步骤如下:
(1)获取数据库类型以及拼接好的SqlDto结构;其中,SqlDto结构可如表1所示:
表1
(2)获取selectDtos,拼接select语句,"select field1 as fieldName1,field2as fieldName2..."。其中,field字段的拼接需要根据字段类型拼接出不同的格式,具体有四种类型:
(2.1)String类型,添加引号表示Sql中的常量。例如:'全部受众'AS"受众";
(2.2)Default类型,默认类型,不作特殊处理。例如:company AS"企业";
(2.3)Function类型,函数类型,比较复杂,可以拼接各种函数用于复杂计算场景或时间处理。
例如:转换时间格式用到to_char,to_date两种函数。to_char(to_date(period,'yyyyMMdd'),'yyyyMM');
(2.4)Operation类型,运算类型,四则运算等计算的Sql字段。例如:t1.profit+t2.profit as"总利润";
同时拼接字段时会拿到数据库类型,用于适配不同数据库的方言;
(3)拼接表名,或嵌套查询结构。如果有表名,直接拼接表名,from table1。否则,拼接嵌套查询结构,内部的sqlDto;
(4)拼接查询条件。where field1 in('xxx'),field1也是通过拼接fieldDto得到,可以是函数类型,默认类型;
(5)拼接分组排序条件。group by field1 order by field1;
(6)判断是否有联合查询。若有联合查询,则需要再次拼接SqlDto结构,以及连接条件,筛选条件等;
(7)生成得到可执行SQL查询语句。
示例性地,生成得到的SQL查询语句如下:
输出SQL示例(postgresql数据库)
SELECT
to_char(to_date(period,'yyyyMMdd'),'yyyyMM')AS"期间",
'全部电子产品'AS"电子产品",
'全部受众'AS"受众",
company AS"企业",
sum(month_tired_income)AS"月累收入"
FROM
relation_table_1
WHERE
to_date(period,'yyyyMMdd')IN(
to_date('20210331','yyyyMMdd'))
AND electronic_products IN('smartphone','tablet_pc','notebook_computer')
AND audiences IN('docter','teacher','students')
AND company IN('Apple')
AND month_tired_income!=0
AND month_tired_income IS NOT NULL
GROUP BY
to_char(to_date(period,'yyyyMMdd'),'yyyyMM'),
company
本技术方案提供了一种通用的查询结构,通过该结构可以转换标准的可执行SQL语句。在具体的业务场景中,可以将数据表中的列的映射关系转换成通用结构,以实现业务中各种查询数据的场景,包括普通取数,分组排序,四则运算,嵌套查询,关联查询以及自定义函数等场景。同时该结构的数据库移植性很强,可以适应各种关系型数据库(oracle,mysql,postgresql(gp)),应用场景广泛,性能较好。
通过分指令拼接SQL的方式,可以拼接出符合多种业务场景的复杂SQL语句,包括函数,运算,关联查询等等;该结构在各种关系型数据库通用,适配不同数据库的方言问题;易扩展,结构通用就可以在结构解析的时候去适配其他数据库。
图3是本申请一个实施例提供的基于通用查询结构的SQL查询语句生成装置的结构示意图,如图3所示,该基于通用查询结构的SQL查询语句生成装置,包括:
语句拆解模块301,用于将待生成的目标SQL查询语句拆解为不同种类的指令对象;
指令对象拼接模块302,用于拼接不同种类的指令对象,得到目标SQL查询语句各部分的指令信息;
SQL查询语句生成模块303,用于将各部分的指令信息进行拼接,生成目标SQL查询语句。
在一个实施例中,SQL查询语句生成模块303,用于:获取数据库类型以及拼接好的SqlDto结构;获取selectDtos,拼接select语句;在无嵌套查询结构的情况下,拼接表名;依次拼接查询条件和分组排序条件;在无联合查询的情况下,生成目标SQL查询语句。
在一个实施例中,select语句中field字段的拼接需要根据字段类型拼接出不同的格式;其中,字段类型包括String类型、Default类型、Function类型及Operation类型。
在一个实施例中,该装置还包括:方言适配模块,用于根据数据库类型,适配对应的方言。
在一个实施例中,该装置还包括:
嵌套查询结构拼接模块,用于在有嵌套查询结构的情况下,拼接嵌套查询结构。
在一个实施例中,该装置还包括:
SqlDto结构拼接模块,用于在有联合查询的情况下,再次拼接SqlDto结构,以及连接条件和筛选条件。
在一个实施例中,SQL查询语句生成模块303,用于:将各部分的指令信息存放在不同种类的指令对象中,生成目标SQL查询语句。
图3所示装置中的各个模块/单元具有实现图1中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
图4示出了本申请实施例提供的电子设备的结构示意图。
电子设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在电子设备的内部或外部。在特定实施例中,存储器402可以是非易失性固态存储器。
在一个实施例中,存储器402可以是只读存储器(Read Only Memory,ROM)。在一个实施例中,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种基于通用查询结构的SQL查询语句生成方法。
在一个示例中,电子设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的基于通用查询结构的SQL查询语句生成方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于通用查询结构的SQL查询语句生成方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种基于通用查询结构的SQL查询语句生成方法,其特征在于,包括:
将待生成的目标SQL查询语句拆解为不同种类的指令对象;
拼接不同种类的所述指令对象,得到所述目标SQL查询语句各部分的指令信息;
将各部分的所述指令信息进行拼接,生成所述目标SQL查询语句。
2.根据权利要求1所述的基于通用查询结构的SQL查询语句生成方法,其特征在于,所述将各部分的所述指令信息进行拼接,生成所述目标SQL查询语句,包括:
获取数据库类型以及拼接好的SqlDto结构;
获取selectDtos,拼接select语句;
在无嵌套查询结构的情况下,拼接表名;
依次拼接查询条件和分组排序条件;
在无联合查询的情况下,生成所述目标SQL查询语句。
3.根据权利要求2所述的基于通用查询结构的SQL查询语句生成方法,其特征在于,包括:
所述select语句中field字段的拼接需要根据字段类型拼接出不同的格式;
其中,所述字段类型包括String类型、Default类型、Function类型及Operation类型。
4.根据权利要求2所述的基于通用查询结构的SQL查询语句生成方法,其特征在于,还包括:
根据所述数据库类型,适配对应的方言。
5.根据权利要求2所述的基于通用查询结构的SQL查询语句生成方法,其特征在于,还包括:
在有所述嵌套查询结构的情况下,拼接所述嵌套查询结构。
6.根据权利要求2所述的基于通用查询结构的SQL查询语句生成方法,其特征在于,还包括:
在有所述联合查询的情况下,再次拼接所述SqlDto结构,以及连接条件和筛选条件。
7.根据权利要求1至6任一项所述的基于通用查询结构的SQL查询语句生成方法,其特征在于,所述将各部分的所述指令信息进行拼接,生成所述目标SQL查询语句,包括:
将各部分的所述指令信息存放在不同种类的所述指令对象中,生成所述目标SQL查询语句。
8.一种基于通用查询结构的SQL查询语句生成装置,其特征在于,包括:
语句拆解模块,用于将待生成的目标SQL查询语句拆解为不同种类的指令对象;
指令对象拼接模块,用于拼接不同种类的所述指令对象,得到所述目标SQL查询语句各部分的指令信息;
SQL查询语句生成模块,用于将各部分的所述指令信息进行拼接,生成所述目标SQL查询语句。
9.一种电子设备,其特征在于,所述电子设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-7任意一项所述的基于通用查询结构的SQL查询语句生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-7任意一项所述的基于通用查询结构的SQL查询语句生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210066755.6A CN114547067A (zh) | 2022-01-20 | 2022-01-20 | 基于通用查询结构的sql查询语句生成方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210066755.6A CN114547067A (zh) | 2022-01-20 | 2022-01-20 | 基于通用查询结构的sql查询语句生成方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114547067A true CN114547067A (zh) | 2022-05-27 |
Family
ID=81670921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210066755.6A Pending CN114547067A (zh) | 2022-01-20 | 2022-01-20 | 基于通用查询结构的sql查询语句生成方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114547067A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462429A (zh) * | 2014-12-12 | 2015-03-25 | 北京国双科技有限公司 | 数据库查询语句的生成方法及装置 |
CN109408529A (zh) * | 2018-11-12 | 2019-03-01 | 广州市千钧网络科技有限公司 | 一种底层数据的处理方法及系统 |
CN112541002A (zh) * | 2020-12-09 | 2021-03-23 | 北京奇艺世纪科技有限公司 | 程序语言转换方法、装置、电子设备及存储介质 |
CN112783915A (zh) * | 2019-11-04 | 2021-05-11 | 航天科工惯性技术有限公司 | 基于SpringMVC+Mybatis框架的数据传输对象映射方法和单元 |
-
2022
- 2022-01-20 CN CN202210066755.6A patent/CN114547067A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462429A (zh) * | 2014-12-12 | 2015-03-25 | 北京国双科技有限公司 | 数据库查询语句的生成方法及装置 |
CN109408529A (zh) * | 2018-11-12 | 2019-03-01 | 广州市千钧网络科技有限公司 | 一种底层数据的处理方法及系统 |
CN112783915A (zh) * | 2019-11-04 | 2021-05-11 | 航天科工惯性技术有限公司 | 基于SpringMVC+Mybatis框架的数据传输对象映射方法和单元 |
CN112541002A (zh) * | 2020-12-09 | 2021-03-23 | 北京奇艺世纪科技有限公司 | 程序语言转换方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112052242B (zh) | 数据查询方法、装置、电子设备及存储介质 | |
US20230281012A1 (en) | Systems and methods for automating and monitoring software development operations | |
US20190377788A1 (en) | Methods and systems for language-agnostic machine learning in natural language processing using feature extraction | |
EP3686749A1 (en) | Method and device for acquiring data model in knowledge graph, and medium | |
CN111104479A (zh) | 一种数据标注的方法及装置 | |
CN114792089A (zh) | 用于管理计算机系统的方法、设备和程序产品 | |
CN114064112A (zh) | 业务流程配置方法、装置、设备及存储介质 | |
CN113448869B (zh) | 测试用例生成的方法、装置、电子设备及计算机可读介质 | |
US8862609B2 (en) | Expanding high level queries | |
CN111831536A (zh) | 一种自动化测试方法和装置 | |
US10268754B2 (en) | Full text indexing in a database system | |
CN114547067A (zh) | 基于通用查询结构的sql查询语句生成方法、装置及设备 | |
CN114721943A (zh) | 测试范围的确定方法和装置 | |
CN115357625A (zh) | 结构化数据比对方法、装置、电子设备及存储介质 | |
CN110096435B (zh) | 代码自动编写方法、装置、计算机设备和存储介质 | |
CN114020774A (zh) | 多轮问答语句的处理方法、装置、设备及存储介质 | |
US20140195540A1 (en) | Expeditious citation indexing | |
CN116992834B (zh) | 基于人工智能的辅助写作方法、系统、介质及电子设备 | |
US20210224126A1 (en) | Generation and usage of a task-based programming platform | |
CN114416775A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113934708A (zh) | 校验标注数据的方法、装置、设备以及存储介质 | |
CN115757314A (zh) | 一种文件处理方法、装置、电子设备及可读存储介质 | |
CN118113739A (zh) | 一种数据分页查询的方法和装置 | |
CN117009338A (zh) | 一种基于pandas的数据验证方法、装置、设备及介质 | |
CN114443484A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220527 |