一种SQL语句生成方法、执行方法、装置及存储介质与流程
- 国知局
- 2024-10-21 14:22:30
本发明涉及软件领域,尤其是一种sql语句生成方法、执行方法、装置及存储介质。
背景技术:
1、现今软件开发领域通常使用编写sql或等效的原生开发语言代码来实现数据库的增删改查操作,因其固有的特性导致常见的问题包括:多出现重叠度高的sql且难于管理、多表关联实现难运维难且容易出现性能问题、查询结果集转换为业务对象编码繁琐,而后来研发人员通过orm技术的解决了上述问题。
2、但是orm技术也存在不足,orm引擎为了实现自动生成多表关联查询的sql需要在业务对象通过标注注入关联信息,而这种方式导致:必须建立中间表对应的业务对象即使无需使用该业务对象,同一表关联关系信息会散落在多个业务对象增加运维成本。同时,调用查询、更新和删除操作时需要编写繁琐的提取调用参数的代码,特别是链式查询时,需要从查询结果中抽取参数作为下一步查询的输入参数。
技术实现思路
1、有鉴于此,为了解决上述技术问题的至少之一,本发明的目的是提供一种sql语句生成方法、装置、设备及存储介质,降低管理难度以及提高便捷性。
2、本发明实施例提供了一种sql语句生成方法,包括:
3、获取实体关系图设计结果;所述实体关系图设计结果包括实体设计元素的定义以及实体设计元素的关系信息;
4、对数据库操作相关类添加与所述实体设计元素绑定的声明式标注;所述声明式标注包括业务对象类与实体设计元素的关系;
5、获取api参数,并提取所述api参数中的目标业务对象类对应的类元信息;所述类元信息包括声明式标注;
6、根据所述实体关系图设计结果、所述api参数以及所述类元信息,通过预设推导算法,推导sql语句生成参数;
7、根据所述sql语句生成参数生成至少一sql语句。
8、进一步,所述对数据库操作相关类添加与所述实体设计元素绑定的声明式标注,包括:
9、响应于添加指令,在类定义源码中触发目标开发语言的语言工具;
10、通过所述目标开发语言的语言工具,为数据库操作相关类添加与所述实体设计元素绑定的声明式标注;
11、其中,数据库操作相关类包括查询条件类、entity类、查询结果类中的至少之一;所述业务对象类与实体设计元素的关系包括绑定关系以及默认排序关系中的至少之一。
12、进一步,所述获取api参数包括:
13、响应于编写指令,根据预设业务需求生成调用api封装的代码;
14、通过所述代码获取api封装的接口的api参数。
15、进一步,所述根据所述实体关系图设计结果、所述api参数以及所述类元信息,通过预设推导算法,推导sql语句生成参数,包括:
16、根据所述api参数以及所述类元信息,进行意图识别处理,得到意图元信息;所述意图元信息表征数据库操作的意图要求;
17、根据所述意图元信息以及所述实体关系图设计结果,通过霍尔逻辑推理,得到sql语句生成参数。
18、进一步,所述根据所述意图元信息以及所述实体关系图设计结果,通过霍尔逻辑推理,得到sql语句生成参数,包括:
19、根据所述意图元信息以及所述实体关系图设计结果,以预设的逻辑规则表达式为约束,推导出sql语句生成参数;
20、其中,所述sql语句生成参数包括目标字段、赋值关系、目标表达式以及目标条件、目标业务对象类要求以及目标关联逻辑中的至少之一。
21、进一步,所述根据所述sql语句生成参数生成至少一sql语句,包括:
22、通过代码生成器根据所述sql语句生成参数生成至少一sql语句;
23、或者,
24、通过代码生成器,根据所述sql语句生成参数并结合等价变换处理、sql拆分处理、缓存处理、客户端关联处理的至少之一,生成sql语句。
25、本发明实施例还提供一种sql语句执行方法,包括:
26、获取至少一sql语句;所述sql语句通过如权利要求1-6任一项所述sql语句生成方法得到;
27、通过orm框架按顺序执行至少一所述sql语句,得到执行结果。
28、本发明实施例还提供一种sql语句生成装置,包括:
29、第一获取模块,用于获取实体关系图设计结果;所述实体关系图设计结果包括实体设计元素的定义以及实体设计元素的关系信息;
30、添加模块,用于对数据库操作相关类添加与所述实体设计元素绑定的声明式标注;所述声明式标注包括业务对象类与实体设计元素的关系;
31、第二获取模块,用于获取api参数,并提取所述api参数中的目标业务对象类对应的类元信息;所述类元信息包括声明式标注;
32、推导模块,用于根据所述实体关系图设计结果、所述api参数以及所述类元信息,通过预设推导算法,推导sql语句生成参数;
33、生成模块,用于根据所述sql语句生成参数生成至少一sql语句。
34、本发明实施例还提供一种sql语句装置,所述sql语句装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现所述sql语句生成方法或sql语句执行方法。
35、本发明实施例还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现所述sql语句生成方法或sql语句执行方法。
36、本发明的有益效果是:
37、通过获取实体关系图设计结果;实体关系图设计结果包括实体设计元素的定义以及实体设计元素的关系信息,对数据库操作相关类添加与实体设计元素绑定的声明式标注,声明式标注包括业务对象类与实体设计元素的关系,获取api参数,并提取api参数中的目标业务对象类对应的类元信息,类元信息包括声明式标注,通过充分利用实体关系图设计结果省去在业务对象标注表关联关系信息的工作,解决表关联信息散落难管理的问题,根据实体关系图设计结果、api参数以及类元信息,通过预设推导算法,推导sql语句生成参数,根据sql语句生成参数生成至少一sql语句,通过合理设计声明式标注以实现自动识别出数据库操作的意图,结合实体关系图设计结果、api参数以及类元信息自动推导sql语句生成参数,可省去编码提取调用参数,特别对于链式多步查询时上一步的查询结果可以直接作为下一步查询的条件而无需编写抽取参数代码,提高便捷性。
38、为了更好地理解和实施,下面结合附图详细说明本发明。
技术特征:1.一种sql语句生成方法,其特征在于,包括:
2.根据权利要求1所述sql语句生成方法,其特征在于:所述对数据库操作相关类添加与所述实体设计元素绑定的声明式标注,包括:
3.根据权利要求1所述sql语句生成方法,其特征在于:所述获取api参数包括:
4.根据权利要求1-3任一项所述sql语句生成方法,其特征在于:所述根据所述实体关系图设计结果、所述api参数以及所述类元信息,通过预设推导算法,推导sql语句生成参数,包括:
5.根据权利要求4所述sql语句生成方法,其特征在于:所述根据所述意图元信息以及所述实体关系图设计结果,通过霍尔逻辑推理,得到sql语句生成参数,包括:
6.根据权利要求1所述sql语句生成方法,其特征在于:所述根据所述sql语句生成参数生成至少一sql语句,包括:
7.一种sql语句执行方法,其特征在于,包括:
8.一种sql语句生成装置,其特征在于,包括:
9.一种sql语句装置,其特征在于:所述sql语句装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7中任一项所述方法。
10.一种计算机可读存储介质,其特征在于:所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-7中任一项所述方法。
技术总结本发明公开了一种SQL语句生成方法、执行方法、装置及存储介质,本发明通过获取实体关系图设计结果,对数据库操作相关类添加与实体设计元素绑定的声明式标注,获取API参数,并提取API参数中的目标业务对象类对应的类元信息,通过充分利用实体关系图设计结果省去在业务对象标注表关联关系信息的工作,解决表关联信息散落难管理的问题;通过合理设计声明式标注以实现自动识别出数据库操作的意图,结合实体关系图设计结果、API参数以及类元信息自动推导SQL语句生成参数,可省去编码提取调用参数,特别对于链式多步查询时上一步的查询结果可以直接作为下一步查询的条件而无需编写抽取参数代码,提高便捷性。技术研发人员:李仲允,雷勇,王沛文,余宝彬,许智洋,高栓受保护的技术使用者:广东亿迅科技有限公司技术研发日:技术公布日:2024/10/17本文地址:https://www.jishuxx.com/zhuanli/20241021/317915.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。