一种跨多类型数据库的连接方法、设备及存储介质与流程

文档序号:33712826发布日期:2023-04-01 00:39阅读:42来源:国知局
一种跨多类型数据库的连接方法、设备及存储介质与流程

1.本技术涉及数据库技术领域,尤其涉及一种跨多类型数据库的连接方法、设备及存储介质。


背景技术:

2.当前主流的数据隔离方案有数据行隔离、数据表隔离、数据库隔离等,其中数据行隔离的数据串扰风险最高、租户内数据保护级别最低,但能够较为简单的实现多租户的数据统计等查询操作;数据表隔离数据串扰风险相对数据行隔离略低,租户内数据保护级别也略高;数据库隔离数据串扰风险最低、租户内数据保护级别最高,但相对数据行隔离和数据表隔离进行多租户整体的数据统计等查询操作相对困难。
3.在金融行业,使用数据库隔离是较为安全的方案。同时,由于不同租户间使用数据库隔离,不同的租户使用的数据库类型也可以不尽相同,比如租户a使用α数据库、租户b则可以使用β数据库、租户c也可以使用α数据库、租户d可以使用新的γ数据库。因此,在数据库隔离模式下,多租户如何使用同一操作逻辑无差别同时在线访问不同类型的数据库,则成为必不可少的需求。


技术实现要素:

4.本技术实施例提供了一种跨多类型数据库的连接方法、设备及存储介质,用以解决数据库隔离模式下多租户如何使用同一操作逻辑无差别同时在线访问不同类型的数据库的技术问题。
5.第一方面,本技术实施例提供了一种跨多类型数据库的连接方法,应用于跨多类型数据库的连接系统,系统包括:数据库元数据表示层、sql编写代码层、数据库连接接口层、分数据库类型实现层、应用调用层,方法包括:在应用调用层中的云服务端接收到租户发送的待操作数据库连接请求的情况下,基于待操作数据库连接请求中包含的租户信息及待操作数据库信息,获取待操作数据库的数据库连接信息,并基于数据连接接口层,确定待操作数据库的数据库连接接口对象;其中,数据连接接口层用于定义数据库配置及数据库连接的接口;数据库连接接口对象用于连接待操作数据库;在应用调用层接收到租户发送的待操作数据库调用请求的情况下,基于数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,通过sql编写代码层中预设的sql语句编写规则,确定含有待操作数据库参数的可读sql语句;分数据库类型实现层对可读sql语句进行编译,以获取可执行sql语句,并基于数据库连接接口对象,运行可执行sql语句,以实现对待操作数据库的操作。
6.在本技术的一种实现方式中,方法还包括:构建待操作数据库的数据源对象,并基于数据源对象构建数据库连接池;其中,数据库连接池用于存放预设的待操作数据库对应的数据库连接接口对象。
7.在本技术的一种实现方式中,在基于数据源对象构建数据库连接池之后,方法还包括:在系统全局中存储数据源对象的引用或者在数据库连接接口对象中存储数据源对象
的引用。
8.在本技术的一种实现方式中,在获取待操作数据库的数据库连接信息之后,方法还包括:数据连接接口层基于数据源对象,在数据库连接池中确定待操作数据库的数据库连接接口对象。
9.在本技术的一种实现方式中,方法还包括:在待操作数据库构建id-sql映射表;其中,id-sql映射表中包含了待操作数据库中各类型初始化可执行sql语句及对应的预设id;在应用调用层接收到租户发送的待操作数据库调用请求的情况下,基于sql编写代码层的预设调用请求映射规则,确定待操作数据库调用请求对应的预设id,并查询id-sql映射表,以获取预设id对应的待操作初始化可执行sql语句;基于数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,对待操作初始化可执行sql语句进行对应待操作数据库的参数配置,以获得可执行sql语句。
10.本技术实施例通过构建的id-sql映射表构建可执行sql语句,实现了对不同数据库间可执行sql语句差异的完全屏蔽,解决了数据库隔离模式下多租户如何使用同一操作逻辑无差别同时在线访问不同类型的数据库的技术问题。
11.在本技术的一种实现方式中,方法还包括:确定待操作数据库的非通用的可执行sql语句构造规则;其中,非通用的可执行sql语句构造规则为在数据连接接口层连接的其他类型数据库中均不存在的可执行sql语句构造规则;将非通用的可执行sql语句构造规则存储于数据连接接口层预设的sql适配器接口中;在应用调用层接收到租户发送的待操作数据库调用请求的情况下,确定待操作数据库调用请求对应的待执行sql语句的类型,并基于待执行sql语句的类型,确定构建待执行sql语句对应的待应用通用可执行sql语句构造规则与待应用非通用可执行sql语句构造规则;应用调用层通过sql适配器接口中存储的待应用非通用可执行sql语句构造规则,构建待执行sql语句的非通用部分,以及通过应用调用层中预设的待应用通用可执行sql语句构造规则及数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,构建待执行sql语句的通用部分;基于待执行sql语句的非通用部分与待执行sql语句的通用部分,确定待执行sql语句。
12.本技术实施例通过非通用可执行sql语句构造规则构建待执行sql语句的非通用部分,通用可执行sql语句构造规则构建待执行sql语句的通用部分,实现了对不同数据库间可执行sql语句差异的屏蔽,在操作上具有较高的便利性,且对各个类型的数据库都具有良好的兼容性,解决了数据库隔离模式下多租户如何使用同一操作逻辑无差别同时在线访问不同类型的数据库的技术问题。
13.在本技术的一种实现方式中,数据连接接口层还包括:数据库对象集合管理器接口;其中,数据库对象集合管理器接口用于根据待操作数据库调用请求对待操作数据库的结构进行操作;操作至少包括:对待操作数据库结构的查询,增加,修改,删除。
14.在本技术的一种实现方式中,方法还包括:在待操作数据库调用请求包括查询操作的情况下,分数据库类型实现层基于预设的数据库数据适配器,将在待操作数据库获取的查询结果集存储于数据库连接接口层的存储结构体中;确定查询结果集的数据类型,并根据查询结果集的数据类型确定分数据库类型实现层中预设的对应标准化类型映射规则;通过标准化类型映射规则,将存储在存储结构体的查询结果集转化成标准化结果集。
15.本技术实施例通过在分数据库类型实现层的数据库数据适配器和数据库连接接
口层的存储结构体,将输出参数也进行统一化,实现了对不同数据库类型间输出结果差异的屏蔽,解决了数据库隔离模式下多租户如何使用同一操作逻辑无差别同时在线访问不同类型的数据库的技术问题。
16.第二方面,本技术实施例还提供了一种跨多类型数据库的连接设备,设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:在应用调用层中的云服务端接收到租户发送的待操作数据库连接请求的情况下,基于待操作数据库连接请求中包含的租户信息及待操作数据库信息,获取待操作数据库的数据库连接信息,并基于数据连接接口层,确定待操作数据库的数据库连接接口对象;其中,数据连接接口层用于定义数据库配置及数据库连接的接口;数据库连接接口对象用于连接待操作数据库;在应用调用层接收到租户发送的待操作数据库调用请求的情况下,基于数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,通过sql编写代码层中预设的sql语句编写规则,确定含有待操作数据库参数的可读sql语句;分数据库类型实现层对可读sql语句进行编译,以获取可执行sql语句,并基于数据库连接接口对象,运行可执行sql语句,以实现对待操作数据库的操作。
17.第三方面,本技术实施例还提供了一种跨多类型数据库连接的非易失性计算机存储介质,存储有计算机可执行的指令,计算机可执行指令设置为:在应用调用层中的云服务端接收到租户发送的待操作数据库连接请求的情况下,基于待操作数据库连接请求中包含的租户信息及待操作数据库信息,获取待操作数据库的数据库连接信息,并基于数据连接接口层,确定待操作数据库的数据库连接接口对象;其中,数据连接接口层用于定义数据库配置及数据库连接的接口;数据库连接接口对象用于连接待操作数据库;在应用调用层接收到租户发送的待操作数据库调用请求的情况下,基于数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,通过sql编写代码层中预设的sql语句编写规则,确定含有待操作数据库参数的可读sql语句;分数据库类型实现层对可读sql语句进行编译,以获取可执行sql语句,并基于数据库连接接口对象,运行可执行sql语句,以实现对待操作数据库的操作。
18.本技术实施例提供的一种跨多类型数据库的连接方法、设备及存储介质,通过数据连接接口层建立与待操作数据库的连接,通过数据库元数据表示层和sql编写代码层获取含有待操作数据库参数的可读sql语句,实现了数据库操作的输入参数统一化,在操作上具有极高的便利性,且对各个类型的数据库都具有良好的兼容性;通过分数据库类型实现层编译可读sql语句以获得可执行sql语句,运行可执行sql语句来最终完成对数据库的操作,实现了对不同数据库间可执行sql语句差异的屏蔽,解决了数据库隔离模式下多租户如何使用同一操作逻辑无差别同时在线访问不同类型的数据库的技术问题。
附图说明
19.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
20.图1为本技术实施例提供的一种跨多类型数据库的连接方法流程图;
21.图2为本技术实施例提供的一种与待操作数据库建立连接的方法流程图;
22.图3为本技术实施例提供的一种获取可执行sql语句的方法流程图;
23.图4为本技术实施例提供的一种获取可执行sql语句的方法流程图;
24.图5为本技术实施例提供的一种跨多类型数据库的连接设备内部结构示意图。
具体实施方式
25.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.本技术实施例提供了一种跨多类型数据库的连接方法、设备及存储介质,用以解决数据库隔离模式下多租户如何使用同一操作逻辑无差别同时在线访问不同类型的数据库的技术问题。
27.下面通过附图对本技术实施例提出的技术方案进行详细的说明。
28.图1为本技术实施例提供的一种跨多类型数据库的连接方法流程图。如图1所示,本技术实施例提供的一种跨多类型数据库的连接方法,应用于跨多类型数据库的连接系统,系统包括:数据库元数据表示层、sql编写代码层、数据库连接接口层、分数据库类型实现层、应用调用层,具体包括以下步骤:
29.步骤101、在应用调用层中的云服务端接收到租户发送的待操作数据库连接请求的情况下,基于待操作数据库连接请求中包含的租户信息及待操作数据库信息,获取待操作数据库的数据库连接信息,并基于数据连接接口层,确定待操作数据库的数据库连接接口对象;其中,数据连接接口层用于定义数据库配置及数据库连接的接口;数据库连接接口对象用于连接待操作数据库。
30.在本技术的一个实施例中,元数据格式存储信息至少包括:表名、字段名、字段代码类型、字段数据库类型、字段和表的对应关系。
31.在本技术的一个实施例中,根据待操作数据库连接请求的需要,基于数据连接接口层确定的待操作数据库的数据库连接接口对象数量可以为一个或多个。
32.图2为本技术实施例提供的一种与待操作数据库建立连接的方法流程图。在本技术的一个实施例中,如图2所示,还提供了一种与待操作数据库建立连接的方法,具体包括:
33.步骤201、构建待操作数据库的数据源对象,并基于数据源对象构建数据库连接池;其中,数据库连接池用于存放预设的待操作数据库对应的数据库连接接口对象。
34.在本技术的一个实施例中,数据库连接池可以配置一个或多个数量的数据库连接接口对象。
35.步骤202、在系统全局中存储数据源对象的引用或者在数据库连接接口对象中存储数据源对象的引用。
36.步骤203、数据连接接口层基于数据源对象,在数据库连接池中确定待操作数据库的数据库连接接口对象。
37.在本技术的一个实施例中,根据租户需要,在数据库连接池中确定的待操作数据库的数据库连接接口对象数量可以为一个或多个。
38.步骤102、在应用调用层接收到租户发送的待操作数据库调用请求的情况下,基于
数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,通过sql编写代码层中预设的sql语句编写规则,确定含有待操作数据库参数的可读sql语句。
39.可以理解的是,可读sql语句通过伪代码形式对各数据库类型的sql语句进行抽象化的统一概括,以此做到对数据库操作的输入参数统一化,在操作上具有极高的便利性,且对各个类型的数据库都具有良好的兼容性。
40.步骤103、分数据库类型实现层对可读sql语句进行编译,以获取可执行sql语句,并基于数据库连接接口对象,运行可执行sql语句,以实现对待操作数据库的操作。
41.也就是说,分数据库类型实现层对可读sql语句进行编译,获取到对应5待执行数据库类型的代码形式的可执行sql语句,完成对待操作数据库的调
42.用请求。可以理解的是,本技术实施例提供的方法,实现了数据库操作的输入参数统一化,并实现了对不同数据库间可执行sql语句差异的屏蔽。
43.图3为本技术实施例提供的一种获取可执行sql语句的方法流程图。在
44.本技术的一个实施例中,如图3所示,还提供了一种获取可执行sql语句的0方法,具体包括:
45.步骤301、在待操作数据库构建id-sql映射表;其中,id-sql映射表中包含了待操作数据库中各类型初始化可执行sql语句及对应的预设id。
46.步骤302、在应用调用层接收到租户发送的待操作数据库调用请求的情况
47.下,基于sql编写代码层的预设调用请求映射规则,确定待操作数据库调用5请求对应的预设id,并查询id-sql映射表,以获取预设id对应的待操作初
48.始化可执行sql语句;
49.步骤303、基于数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,对待操作初始化可执行sql语句进行对应待操作数据库的参数配置,以获得可执行sql语句。
50.0可以理解的是,本技术实施例提供的一种获取可执行sql语句的方法,
51.能够完全实现对不同数据库间可执行sql语句差异的屏蔽。
52.图4为本技术实施例提供的一种获取可执行sql语句的方法流程图。在本技术的一个实施例中,如图4所示,还提供了一种获取可执行sql语句的方法,具体包括:
53.步骤401、确定待操作数据库的非通用的可执行sql语句构造规则;其中,非通用的可执行sql语句构造规则为在数据连接接口层连接的其他类型数据库中均不存在的可执行sql语句构造规则;
54.在本技术的一个实施例中,可执行sql语句构造规则至少包括:各个类型数据库当前数据库时间的sql语句段,截取字符串的sql语句段。
55.步骤402、将非通用的可执行sql语句构造规则存储于数据连接接口层预设的sql适配器接口中;
56.步骤403、在应用调用层接收到租户发送的待操作数据库调用请求的情况下,确定待操作数据库调用请求对应的待执行sql语句的类型,并基于待执行sql语句的类型,确定构建待执行sql语句对应的待应用通用可执行sql语句构造规则与待应用非通用可执行sql语句构造规则;
57.步骤404、应用调用层通过sql适配器接口中存储的待应用非通用可执行sql语句
构造规则,构建待执行sql语句的非通用部分,以及通过应用调用层中预设的待应用通用可执行sql语句构造规则及数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,构建待执行sql语句的通用部分;
58.步骤405、基于待执行sql语句的非通用部分与待执行sql语句的通用部分,确定待执行sql语句。
59.以上为本技术提出的方法实施例。基于同样的发明构思,本技术实施例还提供了一种设备,其结构如图5所示。
60.图5为本技术实施例提供的一种跨多类型数据库的连接设备内部结构示意图。如图5所示,设备包括:
61.至少一个处理器501;
62.以及,与至少一个处理器通信连接的存储器502;
63.其中,存储器502存储有可被至少一个处理器执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够:
64.在应用调用层中的云服务端接收到租户发送的待操作数据库连接请求的情况下,基于待操作数据库连接请求中包含的租户信息及待操作数据库信息,获取待操作数据库的数据库连接信息,并基于数据连接接口层,确定待操作数据库的数据库连接接口对象;其中,数据连接接口层用于定义数据库配置及数
65.据库连接的接口;数据库连接接口对象用于连接待操作数据库;在应用调用层5接收到租户发送的待操作数据库调用请求的情况下,基于数据库元数据表示层
66.中预设的待操作数据库的元数据格式存储信息,通过sql编写代码层中预设的sql语句编写规则,确定含有待操作数据库参数的可读sql语句;分数据库类型实现层对可读sql语句进行编译,以获取可执行sql语句,并基于数
67.据库连接接口对象,运行可执行sql语句,以实现对待操作数据库的操作。0本技术的一些实施例提供的对应于图1的一种跨多类型数据库连接的非易
68.失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:
69.在应用调用层中的云服务端接收到租户发送的待操作数据库连接请求的情况下,基于待操作数据库连接请求中包含的租户信息及待操作数据库信息,
70.获取待操作数据库的数据库连接信息,并基于数据连接接口层,确定待操作数5据库的数据库连接接口对象;其中,数据连接接口层用于定义数据库配置及数
71.据库连接的接口;数据库连接接口对象用于连接待操作数据库;在应用调用层接收到租户发送的待操作数据库调用请求的情况下,基于数据库元数据表示层中预设的待操作数据库的元数据格式存储信息,通过sql编写代码层中预设
72.的sql语句编写规则,确定含有待操作数据库参数的可读sql语句;分数据0库类型实现层对可读sql语句进行编译,以获取可执行sql语句,并基于数
73.据库连接接口对象,运行可执行sql语句,以实现对待操作数据库的操作。
74.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
75.尤其,对于物联网设备和介质实施例而言,由于其基本相似于方法实施例,所5以描述的比较简单,相关之处参见方法实施例的部分说明即可。
76.本技术实施例提供的系统和介质与方法是一一对应的,因此,系统和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述系统和介质的有益技术效果。
77.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计
78.算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结5合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包
79.含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、
80.cd-rom、光学存储器等)上实施的计算机程序产品的形式。
81.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产
82.品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和0/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/
83.或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
84.5这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设
85.备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
86.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使0得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处
87.理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
88.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
89.5内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
90.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
91.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
92.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1