首页 / 专利库 / 电脑编程 / 别名 / 一种SQL语句分类管理及统一查询方法和装置

一种SQL语句分类管理及统一查询方法和装置

阅读:266发布:2020-05-08

专利汇可以提供一种SQL语句分类管理及统一查询方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 公开一种SQL语句分类管理及统一查询方法,包括:配置SQL管理文件:针对各业务类型、业务类型所支持的 数据库 类型、数据库中各业务类型所包括的各数据表,业务标签、业务类型标签和数据表标签,并将SQL语句缺省参数值配置至数据库类型子标签下;在数据查询前,加载SQL管理文件,获取配置信息并保存;响应于外部查询 请求 ,获取查询请求中的业务类型和数据表参数; 定位 到相应业务标签下的数据表标签,得到待查询的数据表 属性信息 ;在数据库类型子标签下,获取SQL语句,进而完善其中缺省的参数,得到完整的SQL查询语句;利用所得到的SQL语句对当前系统执行数据库查询操作,并返回查询结果。本发明可提升数据查询的方便性。,下面是一种SQL语句分类管理及统一查询方法和装置专利的具体信息内容。

1.一种SQL语句分类管理及统一查询方法,其特征是,包括:
根据业务查询需求配置SQL管理文件,包括:针对各业务类型分别配置业务标签及其属性;针对各业务类型所支持的数据库类型分别配置数据库类型子标签及其属性;针对数据库中各业务类型所包括的各数据表分别配置数据表标签及其属性;将SQL语句缺省设置参数值,配置至各业务标签下的各数据库类型子标签下;
在数据查询前,加载已配置的SQL管理文件,获取其中的配置信息并保存;
响应于外部输入有查询请求,获取查询请求中的业务类型和数据表参数;
根据已保存的配置信息以及待查询的业务类型和数据表参数,定位到相应业务标签下的数据表标签,得到待查询的数据表属性信息
根据已保存的配置信息中待查询业务类型所支持的数据库类型,从相应数据库类型子标签下,获取SQL语句;
将待查询的数据表属性信息和数据表参数代入所获取的SQL语句中,得到完整的SQL查询语句;
利用所得到的SQL语句对当前系统执行数据库查询操作,并返回查询结果。
2.根据权利要求1所述的方法,其特征是,SQL管理文件配置为XML文件格式。
3.根据权利要求1所述的方法,其特征是,在获取SQL语句时,从待查询业务类型所支持的数据库类型中选取当前系统支持的数据库类型,从相应的数据库类型标签下获取SQL语句。
4.根据权利要求1所述的方法,其特征是,配置SQL管理文件时,各SQL语句中的参数缺省设置为“?”。
5.根据权利要求1所述的方法,其特征是,所述业务标签为标签,其包括唯一标识属性和返回格式属性,所述唯一标识属性包括id属性和name属性,返回格式属性包括用于存储返回数据英文别名的ids属性以及用于存储返回数据中文描述的hds属性;
查询结束后,按照返回格式属性的配置将查询到的数据进行返回。
6.根据权利要求1所述的方法,其特征是,查询结束后,将查询到的数据封装成JSON格式返回输出。
7.根据权利要求1所述的方法,其特征是,所述数据表标签为

标签,其包括用于配置基础表名的name属性,以及用于配置数据表后缀名的cycle属性,cycle属性用于配置数据表随时间动态变化的属性信息。
8.根据权利要求1所述的方法,其特征是,所述数据库类型标签包括分别对应业务所支持数据库类型Mysql、Oracle、凝思和/或麒麟的标签、标签、标签和/或标签。
9.一种SQL语句分类管理及统一查询装置,其特征是,包括:
SQL管理文件配置模,用于根据业务查询需求配置SQL管理文件,包括:针对各业务类型分别配置业务标签及其属性;针对各业务类型所支持的数据库类型分别配置数据库类型子标签及其属性;针对数据库中各业务类型所包括的各数据表分别配置数据表标签及其属性;将SQL语句缺省设置参数值,配置至各业务标签下的各数据库类型子标签下;
SQL管理文件加载解析模块,用于在数据查询前,加载已配置的SQL管理文件,获取其中的配置信息并保存;
查询请求信息获取模块,用于响应于外部输入有查询请求,获取查询请求中的业务类型和数据表参数;
数据表定位模块,用于根据已保存的配置信息以及待查询的业务类型和数据表参数,定位到相应业务标签下的数据表标签,得到待查询的数据表属性信息;
SQL语句获取模块,用于根据已保存的配置信息中待查询业务类型所支持的数据库类型,从相应数据库类型子标签下,获取SQL语句;
SQL语句补齐模块,用于将待查询的数据表属性信息和数据表参数代入所获取的SQL语句中,得到完整的SQL查询语句;
以及数据查询模块,用于利用所得到的SQL语句对当前系统执行数据库查询操作,并返回查询结果。

说明书全文

一种SQL语句分类管理及统一查询方法和装置

技术领域

[0001] 本发明涉及电监控系统数据库技术领域,特别是一种SQL语句分类管理及统一查询方法和装置。

背景技术

[0002] 目前,在电力监控领域,由于各电网公司二次安全防护中对关系数据库软件的要求一直在发展,需要产品不但能够兼容主流关系数据库如Oracle、MySQL等,也要支持国产关系数据库如达梦、金仓等,但不同数据库SQL语句格式又不完全相同,这样就增加了产品开发和维护的难度,加之电力监控系统数据量巨大,历史数据表有按时间周期分表的习惯,导致数据库查询逻辑极其复杂,每种业务接口中大量的程序逻辑在处理数据库差异和数据表分表,既降低了开发效率也增加了维护难度。

发明内容

[0003] 本发明的目的是提供一种SQL语句分类管理及统一查询方法,可提升查询方便性。
[0004] 本发明采取的技术方案为:一种SQL语句分类管理及统一查询方法,包括:
[0005] 根据业务查询需求配置SQL管理文件,包括:针对各业务类型分别配置业务标签及其属性;针对各业务类型所支持的数据库类型分别配置数据库类型子标签及其属性;针对数据库中各业务类型所包括的各数据表分别配置数据表标签及其属性;将SQL语句缺省设置参数值,配置至各业务标签下的各数据库类型子标签下;
[0006] 在数据查询前,加载已配置的SQL管理文件,获取其中的配置信息并保存;
[0007] 响应于外部输入有查询请求,获取查询请求中的业务类型和数据表参数;
[0008] 根据已保存的配置信息以及待查询的业务类型和数据表参数,定位到相应业务标签下的数据表标签,得到待查询的数据表属性信息
[0009] 根据已保存的配置信息中待查询业务类型所支持的数据库类型,从相应数据库类型子标签下,获取SQL语句;
[0010] 将待查询的数据表属性信息和数据表参数代入所获取的SQL语句中,得到完整的SQL 查询语句;
[0011] 利用所得到的SQL语句对当前系统执行数据库查询操作,并返回查询结果。
[0012] 在当前系统的数据库中,业务数据存储在多个数据表中,由于在SQL管理文件配置时,分别针对数据库中各业务类型所包括的各数据表配置了数据表标签及其属性,因此,无论当前系统支持何种数据库,各数据表在SQL管理文件中皆分别配置有相应的数据表标签,也即本发明可屏蔽数据库类型带来的处理差异,可提高数据库开发的工作效率和降低后期维护的人力成本。
[0013] 可选的,SQL管理文件配置为XML文件格式。方便不同应用系统的解析和加载。
[0014] 可选的,方法中,在获取SQL语句时,从待查询业务类型所支持的数据库类型中选取当前系统支持的数据库类型,从相应的数据库类型标签下获取SQL语句。可减少数据冗余。
[0015] 可选的,配置SQL管理文件时,各SQL语句中的参数缺省设置为“?”。参数可涉及起始时间、结束时间或某种动态形成的筛选条件。
[0016] 可选的,所述业务标签为标签,其包括唯一标识属性和返回格式属性,所述唯一标识属性包括id属性和name属性,返回格式属性包括用于存储返回数据英文别名的ids属性以及用于存储返回数据中文描述的hds属性
[0017] 查询结束后,按照返回格式属性的配置将查询到的数据进行返回。
[0018] 进一步的,查询结束后,将查询到的数据封装成JSON格式返回输出。可适应不同应用系统所支持的语言。
[0019] 可选的,所述数据表标签为
标签,其包括用于配置基础表名的name属性,以及用于配置数据表后缀名的cycle属性,cycle属性用于配置数据表随时间动态变化的属性信息。
[0020] 可选的,所述数据库类型标签包括分别对应业务所支持数据库类型Mysql、Oracle、凝思和/或麒麟的标签、标签、标签和/或标签。标签命名可根据需要调整。
[0021] 本发明还提供一种SQL语句分类管理及统一查询装置,包括:
[0022] SQL管理文件配置模,用于根据业务查询需求配置SQL管理文件,包括:针对各业务类型分别配置业务标签及其属性;针对各业务类型所支持的数据库类型分别配置数据库类型子标签及其属性;针对数据库中各业务类型所包括的各数据表分别配置数据表标签及其属性;将SQL语句缺省设置参数值,配置至各业务标签下的各数据库类型子标签下;
[0023] SQL管理文件加载解析模块,用于在数据查询前,加载已配置的SQL管理文件,获取其中的配置信息并保存;
[0024] 查询请求信息获取模块,用于响应于外部输入有查询请求,获取查询请求中的业务类型和数据表参数;
[0025] 数据表定位模块,用于根据已保存的配置信息以及待查询的业务类型和数据表参数,定位到相应业务标签下的数据表标签,得到待查询的数据表属性信息;
[0026] SQL语句获取模块,用于根据已保存的配置信息中待查询业务类型所支持的数据库类型,从相应数据库类型子标签下,获取SQL语句;
[0027] SQL语句补齐模块,用于将待查询的数据表属性信息和数据表参数代入所获取的SQL语句中,得到完整的SQL查询语句;
[0028] 以及数据查询模块,用于利用所得到的SQL语句对当前系统执行数据库查询操作,并返回查询结果。
[0029] 有益效果
[0030] 本发明的SQL分类管理及统一查询方法,通过将SQL语句分业务分数据库类型管理,屏蔽了数据库类型带来的处理差异。通过在SQL管理文件配置时配置数据表的扩展名称属性,并相应配置数据在数据库中的存储结构,解决了数据表按周期分表造成的查询困难,提高数据查询的方便性。
[0031] 此外,通过本发明对SQL管理文件的具体配置,使得本发明能够根据SQL查询内容预定义数据返回格式,支持多参数传入。可将传统需要编写大量重复代码才能实现的业务逻辑转变为简单配置工作,不仅提高了开发的工作效率也降低了后期维护的人力成本。附图说明
[0032] 图1所示为本发明方法原理示意图。图2所示为统一查询接口实现原理示意图。

具体实施方式

[0033] 以下结合附图和具体实施例进一步描述。
[0034] 实施例1
[0035] 参考图1,本实施例为一种SQL语句分类管理及统一查询方法,包括:
[0036] 根据业务查询需求配置SQL管理文件,包括:针对各业务类型分别配置业务标签及其属性;针对各业务类型所支持的数据库类型分别配置数据库类型子标签及其属性;针对数据库中各业务类型所包括的各数据表分别配置数据表标签及其属性;将SQL语句缺省设置参数值,配置至各业务标签下的各数据库类型子标签下;
[0037] 在数据查询前,加载已配置的SQL管理文件,获取其中的配置信息并保存;
[0038] 响应于外部输入有查询请求,获取查询请求中的业务类型和数据表参数;
[0039] 根据已保存的配置信息以及待查询的业务类型和数据表参数,定位到相应业务标签下的数据表标签,得到待查询的数据表属性信息;
[0040] 根据已保存的配置信息中待查询业务类型所支持的数据库类型,从相应数据库类型子标签下,获取SQL语句;
[0041] 将待查询的数据表属性信息和数据表参数代入所获取的SQL语句中,得到完整的SQL 查询语句;
[0042] 利用所得到的SQL语句对当前系统执行数据库查询操作,并返回查询结果。
[0043] 在当前系统的数据库中,业务数据存储在多个数据表中。由于在SQL管理文件配置时,分别针对数据库中各业务类型所包括的各数据表配置了数据表标签及其属性,因此,无论当前系统支持何种数据库,各数据表在SQL管理文件中皆分别配置有相应的数据表标签,也即本发明可屏蔽数据库类型带来的处理差异,可提高数据库开发的工作效率和降低后期维护的人力成本。
[0044] 在获取SQL语句时,可从待查询业务类型所支持的数据库类型中,仅选取当前系统支持的数据库类型,从相应的数据库类型标签下获取SQL语句,可减少数据冗余。
[0045] 实施例1-1
[0046] 基于实施例1,本实施例从两个方面对方法进行描述,一是SQL文件的配置,二是数据库统一查询。
[0047] 一、SQL管理文件配置
[0048] 本实施例中,SQL管理文件配置为XML文件格式,配置的目标包括:对SQL语句进行针对不同业务类型和不同数据库类型的分类管理,对数据返回格式进行定义以支持数据返回格式预制,以及对数据表属性进行配置以实现SQL语句生成时的待查询数据表名自动生成,和SQL参数管理以支持多参数传入。
[0049] SQL管理文件的配置包括以下过程。
[0050] 1.1分析业务需要支撑的数据库类型、数据表命名规则和数据表结构,根据业务查询需求,针对各业务类型分别配置业务标签:业务标签为标签,其包括唯一标识属性和返回格式属性,唯一标识属性包括id属性和name属性,返回格式属性包括用于存储返回数据英文别名的ids属性以及用于存储返回数据中文描述的hds属性;
[0051] id属性即业务类型的唯一标识,在需要数据查询进行系统程序初始化时,通过加载SQL 配置文件可从中读取,读取后系统将各业务类型id作为主键key缓存在业务类型地图map中,供查询时调用;
[0052] name属性,业务接口描述,用于解释业务接口实际含义;
[0053] 通过定义ids属性和hds属性,在查询结束后,可按照返回格式属性的配置将查询到的数据进行返回,即实现返回格式预制管理,将返回的数据结构用一种统一的方式描述;
[0054] 在此基础上,查询结束后,将查询到的数据封装成JSON格式返回输出,可适应不同应用系统所支持的语言。
[0055] 1.2对应各业务类型下的数据表分别设置数据表标签,即对于每个标签,设置
 标签,该标签包括如下属性:
[0056] name,用于配置需要查询的数据表基础表名;
[0057] alias,记录数据表的描述,解释数据表的用处;
[0058] cycle,用于配置数据表随时间动态变化的属性信息,即设置数据表的扩展名称,可以分别设置为按日、按周、按月、按季、按年,支持传参。
[0059] 在配置时,可根据业务查询所涉及的数据库表,分析数据库表名规则,将基础表名配置在
标签的name属性中,将跟随时间动态变化的数据表后缀名配置在
标签的 cycle属性中。
标签的定义可以灵活描述数据表名命名规则,查询时可以根据命名规则动态生成数据表名,即实现动态表名管理,可解决数据分表带来的查询不便。
[0060] 1.3对应各业务类型所支持的数据库类型分别设置数据库类型标签,如针对业务所支持的数据库类型Mysql、Oracle、凝思、麒麟,数据库类型标签对应为标签、 标签、标签、标签,标签命名可根据需要调整。将各SQL语句写入各数据库类型标签下,即实现SQL的分库管理,根据业务需要支持的数据库类型,将不同类型的 SQL语句配置到不同的数据库标签内,比如某一业务需要支持MySQL,则将SQL语句写入 标签管理。
[0061] 针对同一种业务需要兼容不同的数据库类型,不同数据库类型其SQL语句有差异的情形,经常遇到的就是时间格式的差异,管理的SQL语句内有带入时间参数的需求,可以将参数填写为“?”号,当需要对某一时间段查询时可调用统一查询接口将时间当做参数传入,即实现 SQL参数管理。
[0062] 二、数据库统一查询
[0063] 本发明的统一查询方法为数据库查询操作提供统一的查询接口,参考图2所示。统一的查询接口可实现包括业务查询、屏蔽数据库差异、参数动态传入、数据按预制输出等功能。
[0064] 基于前述SQL管理文件配置形成的SQL分类管理架构,统一查询方法包括以下内容。
[0065] 2.1业务查询
[0066] 获取目标用户查询请求后,基于查询请求中的业务和数据表动态参数如时间参数,调用统一查询接口,查询接口通过唯一id定位所查询的业务类型。
[0067] 2.2SQL语句获取
[0068] 根据当前系统的数据库类型,定位到相应数据库类型标签下的SQL语句,从而屏蔽了数据库差异。
[0069] 2.3参数动态传入
[0070] 将接口时间参数一一替换SQL语句中缺省的“?”参数,形成完整的SQL语句用于查询。
[0071] 2.4查询结果输出
[0072] 利用完整SQL语句对当前系统执行数据查询操作,得到查询的数据结果,然后按照 内ids和hds属性中预制的返回数据格式,将查询结果数据封装成统一的JSON格式数据返回。
[0073] 以下以查询2019年10月5日所有电站发电量业务为例,该业务存储在MySQL数据中,数据表名为wturSmpEny_day2019,按业务需求配置管理文件,如下:
[0074]
[0075] 程序初始化时加载已配置的管理文件,将配置信息读取到内存中,待之后查询使用。
[0076] 查询过程为:
[0077] 响应于查询请求,调用查询接口传入参数:“test”为管理文件中该业务的id,[“2019-10-05”] 分别对应sql语句中的?号参数。
[0078] 执行接口查询getSqlByID(“test”,[“2019-10-05”]),接口实现步骤如下:
[0079] 1)根据id“test”找到业务类型内容;
[0080] 2)根据时间参数得到完整数据表名:wturSmpEny_day2019;
[0081] 3)根据MySQL数据库类型找到对应的SQL语句;
[0082] 4)将数据表名及传入的其他参数代入到SQL语句中形成完整的SQL语句;
[0083] 5)通过完整的SQL语句查询数据,并组织返回的数据;
[0084] 6)按预制的固定格式返回数据,如下:
[0085]
[0086] 实施例2
[0087] 与实施例1基于相同的发明构思,本实施例为一种SQL语句分类管理及统一查询装置,包括:
[0088] SQL管理文件配置模块,用于根据业务查询需求配置SQL管理文件,包括:针对各业务类型分别配置业务标签及其属性;针对各业务类型所支持的数据库类型分别配置数据库类型子标签及其属性;针对数据库中各业务类型所包括的各数据表分别配置数据表标签及其属性;将SQL语句缺省设置参数值,配置至各业务标签下的各数据库类型子标签下;
[0089] SQL管理文件加载解析模块,用于在数据查询前,加载已配置的SQL管理文件,获取其中的配置信息并保存;
[0090] 查询请求信息获取模块,用于响应于外部输入有查询请求,获取查询请求中的业务类型和数据表参数;
[0091] 数据表定位模块,用于根据已保存的配置信息以及待查询的业务类型和数据表参数,定位到相应业务标签下的数据表标签,得到待查询的数据表属性信息;
[0092] SQL语句获取模块,用于根据已保存的配置信息中待查询业务类型所支持的数据库类型,从相应数据库类型子标签下,获取SQL语句;
[0093] SQL语句补齐模块,用于将待查询的数据表属性信息和数据表参数代入所获取的SQL语句中,得到完整的SQL查询语句;
[0094] 以及数据查询模块,用于利用所得到的SQL语句对当前系统执行数据库查询操作,并返回查询结果。
[0095] 以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
[0096] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0097] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/ 或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/ 或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0098] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0099] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0100] 以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
标题 发布/更新时间 阅读量
基于机器学习的编译器测试加速方法 2020-05-11 478
一种融合电网运行环境及设备信息的跨系统数据转换方法 2020-05-14 335
一种X光机图片采集辅助装置和处理方法 2020-05-14 488
一种发票匹配方法及系统 2020-05-08 473
基于别名标准化的领域专业词汇词嵌入向量训练方法、系统及介质 2020-05-11 55
一种业务功能链操作、管理和维护方法及节点设备 2020-05-13 544
一种域名配置方法及设备 2020-05-13 465
BGP会话建立、发送接口地址和别名的方法及网络设备 2020-05-14 70
基于带对抗训练深度网络的恶意域名检测方法及系统 2020-05-14 479
BGP会话建立、发送接口地址和别名的方法及网络设备 2020-05-14 571
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈