一种基于Gorm的数据查询方法及数据查询装置与流程

专利2025-08-03  24


本公开涉及数据处理,尤其涉及一种基于gorm的数据查询方法及数据查询装置。


背景技术:

1、gorm是go l ang语言中一个优秀的orm(对象关系映射)库,它提供了简单而强大的方式来处理数据库操作。目前,对于数据库的数据查询可以采用基于gorm实现的方案,例如,基于gorm编写数据查询模型以实现对指定数据的查询统计。然而,一个gorm实例只能对应一种统计方式,在面对同一个统计对象时,若统计维度发生改变,需要重新开发一个gorm实例,重新开发过程中需要重复编写筛选条件相关代码,导致开发效率低下。


技术实现思路

1、为了解决上述提出的至少一个技术问题,本公开提出了一种基于gorm的数据查询方法及数据查询装置。

2、根据本公开的一些实施例中,提供了一种基于gorm的数据查询方法,包括:响应于数据查询指令,获取所述数据查询指令对应的当前数据筛选条件;在所述当前数据筛选条件的类型不属于已存储类型的情况下,新建数据查询模型,所述数据查询模型用于配置gorm查询语句以实现数据查询功能;在基于所述当前数据筛选条件确定出目标查询条件的情况下,从预设实例模型中获取与所述目标查询条件对应的目标gorm查询变量,所述预设实例模型为配置有多个gorm查询变量的gorm实例;在基于所述目标查询条件和所述目标gorm查询变量,生成目标gorm查询语句的情况下,通过所述目标gorm查询语句配置所述数据查询模型;运行所述数据查询模型,得到数据查询结果。

3、基于上述方案,通过在预设实例模型中存储了多个gorm查询变量,在产生新类型的数据筛选条件时,可以直接从已有的预设实例模型中获取gorm查询变量以生成目标gorm查询语句,不用根据当前数据筛选条件重复编写查询条件的代码,提升开发效率。

4、在一些可能的实施方式中,所述预设实例模型基于下述方法得到:建立空白查询模型,所述空白查询模型用于配置gorm查询变量;基于目标数据库的属性关系,确定第一对象,所述第一对象为与所述目标数据库相互映射的结构体变量,所述目标数据库为与所述空白查询模型建立连接的数据库;在基于所述目标数据库,确定出所述第一对象对应的gorm查询变量的情况下,通过所述第一对象对应的gorm查询变量配置所述空白查询模型,得到所述预设实例模型。

5、基于上述方案,通过与目标数据库建立联系,利用对象关系映射提前制作好结构体变量,可以将面向目标数据库的数据筛选条件转换为gorm查询变量,在面对同一目标数据库的查询统计业务时,能够直接获取gorm查询变量提高开发效率。

6、在一些可能的实施方式中,所述基于所述目标数据库,确定出所述第一对象对应的gorm查询变量之前,所述方法还包括:获取所述目标数据库的预设数据筛选条件;在基于所述预设数据筛选条件,确定出所述第一对象的查询条件的情况下,将所述第一对象的查询条件配置进第二对象中,所述第二对象表征保存查询条件的结构体变量;基于所述第二对象生成第一查询函数,所述第一查询函数包括至少一个gorm查询变量,所述至少一个gorm查询变量与所述第一对象的查询条件对应。

7、基于上述方案,第二对象能够尽可能多地存储第一对象的查询条件,在后续面对新统计维度的查询统计业务时,有助于减少需要额外编写代码的查询条件数量,简化开发难度。

8、在一些可能的实施方式中,所述通过所述第一对象对应的gorm查询变量配置所述空白查询模型,得到所述预设实例模型,包括:基于所述第一对象,生成gorm查询实例,所述gorm查询实例用于实现对所述目标数据库的数据查询;将所述第一查询函数配置进所述gorm查询实例中;基于所述预设数据筛选条件,对所述第一查询函数中的所述至少一个gorm查询变量赋值。

9、基于上述方案,通过将第一对象实例化,能够将第一对象的查询条件进行保存,以便于新建数据查询模型时能够直接从gorm查询实例中调用相应的查询条件,简化开发量。

10、在一些可能的实施方式中,所述从预设实例模型中获取与所述目标查询条件对应的目标gorm查询变量,包括:从所述预设实例模型中获取所述第二对象;获取所述目标查询条件与所述第一对象的查询条件之间的共有查询条件;基于所述第二对象和所述共有查询条件,生成第二查询函数,所述第二查询函数包括所述目标gorm查询变量,所述目标gorm查询变量与所述共有查询条件对应。

11、基于上述方案,第二对象包括第一对象的所有查询条件,通过从第一对象的查询条件中找到目标查询条件,可以将不需要的查询条件去除,仅保留符合当前数据筛选条件的查询条件,再获取第二对象中对应的gorm查询变量,完成查询条件的获取。

12、在一些可能的实施方式中,所述基于所述目标查询条件和所述目标gorm查询变量,生成目标gorm查询语句,包括:基于所述当前数据筛选条件,对所述第二查询函数中的所述目标gorm查询变量赋值;基于新增查询条件建立第三查询函数,所述新增查询条件指示所述目标查询条件中的不属于所述共有查询条件的查询条件。

13、基于上述方案,通过对第二对象函数化,第二查询函数仅接受与共有查询条件对应的gorm查询变量并重新赋值,使得数据查询模型在引用预设实例模型的查询条件时不会受到原赋值影响;再通过对新增查询条件的函数化,能够确保数据查询的准确性。

14、根据本公开的另一些实施例中,提供了一种基于gorm的数据查询装置,包括:指令获取模块,被配置为执行响应于数据查询指令,获取所述数据查询指令对应的当前数据筛选条件;模型生成模块,被配置为执行在所述当前数据筛选条件的类型不属于已存储类型的情况下,新建数据查询模型;变量获取模块,被配置为执行在基于所述当前数据筛选条件确定出目标查询条件的情况下,从预设实例模型中获取与所述目标查询条件对应的目标gorm查询变量;模型配置模块,被配置为执行在基于所述目标查询条件和所述目标gorm查询变量,生成目标gorm查询语句的情况下,通过所述目标gorm查询语句配置所述数据查询模型。

15、根据本公开的另一些实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现上述一些实施例中所述的一种基于gorm的数据查询方法。

16、根据本公开的另一些实施例中,提供了一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现上述一些实施例中所述的一种基于gorm的数据查询方法。

17、根据本公开的另一些实施例中,提供了一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现上述一些实施例中所述的一种基于gorm的数据查询方法。

18、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。

19、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。


技术特征:

1.一种基于gorm的数据查询方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述预设实例模型基于下述方法得到:

3.根据权利要求2所述的方法,其特征在于,所述基于所述目标数据库,确定出所述第一对象对应的gorm查询变量之前,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述通过所述第一对象对应的gorm查询变量配置所述空白查询模型,得到所述预设实例模型,包括:

5.根据权利要求4所述的方法,其特征在于,所述从预设实例模型中获取与所述目标查询条件对应的目标gorm查询变量,包括:

6.根据权利要求5所述的方法,其特征在于,所述基于所述目标查询条件和所述目标gorm查询变量,生成目标gorm查询语句,包括:

7.一种基于gorm的数据查询装置,其特征在于,包括:

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-6中任意一项所述的一种基于gorm的数据查询方法。

9.一种电子设备,其特征在于,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1-6中任意一项所述的一种基于gorm的数据查询方法。

10.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1-6中任意一项所述的一种基于gorm的数据查询方法。


技术总结
本公开涉及一种基于Gorm的数据查询方法及数据查询装置,方法包括:响应于数据查询指令,获取数据查询指令对应的当前数据筛选条件;在当前数据筛选条件的类型不属于已存储类型的情况下,新建数据查询模型;在基于当前数据筛选条件确定出目标查询条件的情况下,从预设实例模型中获取与目标查询条件对应的目标Gorm查询变量,预设实例模型为配置有多个Gorm查询变量的Gorm实例;在基于目标查询条件和目标Gorm查询变量生成目标Gorm查询语句的情况下,通过目标Gorm查询语句配置数据查询模型;运行数据查询模型,得到数据查询结果。本公开通过从预设实例模型中复制查询条件,不用重复编写查询条件的代码,提升开发效率。

技术研发人员:李晓东
受保护的技术使用者:苏州达家迎信息技术有限公司
技术研发日:
技术公布日:2024/11/11
转载请注明原文地址: https://tieba.8miu.com/read-16541.html

最新回复(0)