System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种针对数据库的动态查询方法、设备及介质。
技术介绍
1、在项目开发中,定制化的关联计算统计查询是困扰业务用户的难题之一,不同业务、不同场景查询维度、展示样式、计算规则各有差异。
2、目前,通过开发人员在应用服务器为每个查询定制化开发,但是,定制化开发仅能针对每个业务单独开发查询规则,耗费人力多,以及实际业务的计算查询会随时变化,业务或政策调整都可能导致查询处理规则的变化,只能再投入人力修改或重新开发后端,从而无法及时高效适应规则的调整,从而导致针对数据库的动态查询无法灵活高效地定制化查询规则,效率低下。
技术实现思路
1、本申请实施例提供一种针对数据库的动态查询方法、设备及介质,用于解决针对数据库的动态查询无法灵活高效地定制化查询规则,效率低下的问题。
2、本申请实施例采用下述技术方案:
3、一方面,本申请实施例提供了一种针对数据库的动态查询方法,该方法包括:应用服务器获取业务用户在客户端上传的查询请求;解析所述查询请求,得到业务用户在客户端自定义选择的查询配置信息;根据所述查询配置信息,从业务数据库中提取相应的业务数据,并对所述业务数据进行处理,得到查询结果;将所述查询结果返回至所述客户端。
4、一个示例中,所述应用服务器获取业务用户在获取客户端上传的查询请求之前,所述方法还包括:客户端确定管理用户上传的查询类型以及所述查询类型的中间表结构;中间表结构包括编号字段以及显示业务字段;确定所述查询类型的多个数
5、一个示例中,所述根据所述取数条件,筛选出所述数据来源的查询编号,具体包括:从所述数据来源的数据表中,根据所述取数条件对所述查询业务字段的业务数据进行筛选,得到所述查询业务字段的多条业务数据;将每条业务数据的编号,分别标记为所述数据来源的查询编号;所述根据所述查询编号,确定多个数据来源之间的关联条件,具体包括:根据所述查询编号和/或所述查询业务字段,确定多个数据来源之间的关联条件。
6、一个示例中,所述根据所述查询配置信息,从业务数据库中提取相应的业务数据,并对所述业务数据进行处理,得到查询结果,具体包括:生成所述中间表结构的中间表;根据第一数据来源的连接参数,对所述第一数据来源进行连接;所述第一数据来源为查询执行顺序最早的数据来源;根据第一数据来源中第一查询业务字段,提取满足第一取数条件的第一业务数据;将所述第一业务数据输出至所述中间表;根据第二数据来源的连接参数,对所述第二数据来源进行连接;所述第二数据来源的查询执行顺序处于所述第一数据源的下一个顺序;根据第二数据来源中第二查询业务字段,提取满足第二取数条件的第二业务数据;根据所述第二数据来源的关联条件、所述第二数据来源的处理属性,基于所述第二业务数据对所述中间表的第一业务数据进行处理,得到所述中间表的第一修改业务数据;根据第三数据来源的连接参数,对所述第三数据来源进行连接;所述第三数据来源的查询执行顺序处于所述第二数据来源的下一个顺序;根据第三数据来源中第三查询业务字段,提取满足第三取数条件的第三业务数据;根据所述第三数据来源之间的关联条件、所述第三数据来源的处理属性,基于所述第三业务数据对所述中间表的第一修改业务数据进行处理,得到所述中间表的第二修改业务数据;根据所述中间表的第二修改业务数据,得到查询结果。
7、一个示例中,所述根据所述第二数据来源的关联条件、所述第二数据来源的处理属性,基于所述第二业务数据对所述中间表的第一业务数据进行处理,得到所述中间表的第一修改业务数据,具体包括:在所述第二数据源的处理属性为新增模式时,则所述第二数据来源的关联条件为空,将所述第二业务数据增加至所述中间表,得到所述中间表的第一修改业务数据;所述第二业务数据处于所述第一业务数据相邻下方;在所述第二数据源的处理属性为更新模式时,若所述第二数据来源的关联条件为第一查询编号,则在所述中间表中,将所述第一查询编号在第一数据来源的业务数据替换所述第一查询编号在第二数据来源的业务数据,得到所述中间表的第一修改业务数据;在所述第二数据源的处理属性为删除模式时,若所述第二数据来源的关联条件为第二查询编号,则在所述中间表中,将所述第二查询编号在第一数据来源的业务数据进行删除,得到所述中间表的第一修改业务数据。
8、一个示例中,所述将所述查询结果返回至所述客户端之后,所述方法还包括:将所述中间表与业务用户登录账号、查询配置信息进行绑定,以确定所述中间表的唯一性;在预设周期内,判断中间表的存储时长是否超过预设时长;若是,则将所述中间表进行删除。
9、一个示例中,所述确定所述查询类型的多个数据来源之前,所述方法还包括:客户端接收所述查询类型的扩展数据来源请求;扩展数据来源为第三方数据来源;根据所述扩展数据来源请求调用扩展接口,以通过所述扩展接口将所述扩展数据来源确定为所述查询类型的数据来源。
10、一个示例中,所述将所述查询结果返回至所述客户端之后,所述方法还包括:接收客户端的查询反馈结果;若所述查询反馈结果为失败,则判断所述查询配置信息中是否具有扩展数据来源;若是,则判断是否具有所述扩展数据来源的权限;若否,则生成失败原因,将所述失败原因反馈至管理终端;若是,则将所述查询反馈结果反馈至所述管理终端。
11、另一方面,本申请实施例提供了一种针对数据库的动态查询设备,应用于应用服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取业务用户在客户端上传的查询请求;解析所述查询请求,得到业务用户在客户端自定义选择的查询配置信息;根据所述查询配置信息,从业务数据库中提取相应的业务数据,并对所述业务数据进行处理,得到查询结果;将所述查询结果返回至所述客户端。
12、另一方面,本申请实施例提供了一种针对数据库的动态查询非易失性计算机存储介质,存储有计算机可执行指令,应用于应用服务器,所述计算机可执行指令设置为:获取业务用户在客户端上传的查询请求;解析所述查询请求,得到业务用户在客户端自定义选择的查询配置信息;根据所述查询配置信息,从业务数据库中提取相应的业务数据,并对所述业务数据进行处本文档来自技高网...
【技术保护点】
1.一种针对数据库的动态查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述应用服务器获取业务用户在获取客户端上传的查询请求之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述取数条件,筛选出所述数据来源的查询编号,具体包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述查询配置信息,从业务数据库中提取相应的业务数据,并对所述业务数据进行处理,得到查询结果,具体包括:
5.根据权利要求4所述的方法,其特征在于,所述根据所述第二数据来源的关联条件、所述第二数据来源的处理属性,基于所述第二业务数据对所述中间表的第一业务数据进行处理,得到所述中间表的第一修改业务数据,具体包括:
6.根据权利要求4所述的方法,其特征在于,所述将所述查询结果返回至所述客户端之后,所述方法还包括:
7.根据权利要求2所述的方法,其特征在于,所述确定所述查询类型的多个数据来源之前,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述将所述查询结果返
9.一种针对数据库的动态查询设备,其特征在于,应用于应用服务器,包括:
10.一种针对数据库的动态查询非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,应用于应用服务器,所述计算机可执行指令设置为:
...【技术特征摘要】
1.一种针对数据库的动态查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述应用服务器获取业务用户在获取客户端上传的查询请求之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述取数条件,筛选出所述数据来源的查询编号,具体包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述查询配置信息,从业务数据库中提取相应的业务数据,并对所述业务数据进行处理,得到查询结果,具体包括:
5.根据权利要求4所述的方法,其特征在于,所述根据所述第二数据来源的关联条件、所述第二数据来源的处理属性,基于所述第二业务数据对所述中间表的第一...
【专利技术属性】
技术研发人员:李建利,曹景存,
申请(专利权)人:浪潮通用软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。