一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于JDBC的多数据库接入方法、装置及电子设备与流程

2021-11-15 18:35:00 来源:中国专利 TAG:

基于jdbc的多数据库接入方法、装置及电子设备
技术领域
1.本公开涉及数据加工技术领域,尤其涉及一种基于jdbc的多数据库接入方法、装置及电子设备。


背景技术:

2.etl(extract

transform

load,抽取

转换

加载)数据的抽取、转换和加载是数据中心数据处理到实际应用的一个重要步骤。而etl任务配置第一步通常为数据库接入,目前主流数据库引擎包括oralce数据库、db2数据库、mysql数据库、postgresql数据库等,而且源端数据库类型与目标数据库类型通常不一致,因此研究一种etl通用数据库接入接口是为企业所有业务系统提供服务的基础。


技术实现要素:

3.本公开的至少一个实施例提供了一种基于jdbc的多数据库接入方法、装置及电子设备,基于jdbc方式实现了一套统一的数据库访问接口,屏蔽了不同类型数据库之间的差异,实现了高效统一的数据库接入。
4.第一方面,本公开提供了一种基于jdbc的多数据库接入方法,应用于etl工具,所述etl工具包括基于jdbc开发的统一访问接口,所述方法包括:
5.获取用户在所述统一访问接口上选择的目标数据库;
6.接收用户配置的数据库连接信息,所述数据库连接信息包括所述目标数据库的访问地址、用户账号信息和登录密码;
7.根据所述数据库连接信息,通过所述统一访问接口连接与所述访问地址对应的目标数据库,以获得connection对象;
8.根据从所述connection对象获取的所述目标数据库的相关信息,通过所述统一访问接口从所述目标数据库中获取数据以进行数据清洗、转换和加载。
9.第二方面,本公开提供了一种基于jdbc的多数据库接入装置,应用于etl工具,所述etl工具包括基于jdbc开发的统一访问接口,所述装置包括:
10.第一获取模块,用于获取用户在所述统一访问接口上选择的目标数据库;
11.接收模块,用于接收用户配置的数据库连接信息,所述数据库连接信息包括所述目标数据库的访问地址、用户账号信息和登录密码;
12.连接模块,用于根据所述数据库连接信息,通过所述统一访问接口连接与所述访问地址对应的目标数据库,以获得connection对象;
13.第二获取模块,用于根据从所述connection对象获取的所述目标数据库的相关信息,通过所述统一访问接口从所述目标数据库中获取数据以进行数据清洗、转换和加载。
14.第三方面,本公开提供了一种电子设备,包括:处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行本公开实施例提供的任一所述基于jdbc的多数据库接入方法的步骤。
15.第四方面,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行本公开实施例提供的任一所述基于jdbc的多数据库接入方法的步骤。
16.第五方面,本公开提供了一种计算机程序产品,所述计算机程序产品用于执行本公开实施例提供的任一所述基于jdbc的多数据库接入方法的步骤。
17.本公开实施例提供的技术方案与现有技术相比至少具有如下优点:
18.在本公开实施例中,通过在etl工具中基于jdbc开发统一访问接口,获取用户在统一访问接口上选择的目标数据库,并接收用户配置的数据库连接信息,数据库连接信息包括目标数据库的访问地址、用户账号信息和登录密码,根据数据库连接信息,通过统一访问接口连接与访问地址对应的目标数据库,以获得connection对象,进而根据从connection对象获取的目标数据库的相关信息,通过统一访问接口从目标数据库中获取数据以进行数据清洗、转换和加载,由此,建立了高效统一的数据库访问接口,能够实现不同数据库的接入。
附图说明
19.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
20.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为本公开一实施例提供的基于jdbc的多数据库接入方法的流程示意图;
22.图2为etl工具通过统一访问接口与数据库连接的总体架构示意图;
23.图3为基于jdbc的统一访问接口的结构示意图;
24.图4为本公开一实施例提供的基于jdbc的多数据库接入装置的结构示意图。
具体实施方式
25.为了能够更清楚地理解本公开的上述目的、特征和优点,下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,所描述的实施例是本公开的一部分实施例,而不是全部的实施例,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。基于所描述的本公开的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
26.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
27.图1为本公开一实施例提供的基于jdbc的多数据库接入方法的流程示意图,该基于jdbc的多数据库接入方法应用于etl工具,etl工具包括基于jdbc开发的统一访问接口。该基于jdbc的多数据库接入方法可以由本公开实施例提供的基于jdbc的多数据库接入装置执行,该基于jdbc的多数据库接入装置可以采用软件和/或硬件实现,并可集成在任意具有处理能力的电子设备上,例如台式电脑、平板电脑等设备。
28.如图1所示,本公开实施例提供的基于jdbc的多数据库接入方法,可以包括以下步骤:
29.步骤101,获取用户在所述统一访问接口上选择的目标数据库。
30.本实施例中,统一访问接口可以基于jdbc(java database connectivity,java数据库连接)方式实现。
31.在etl数据接入中,jdbc是一个独立于特定数据库管理系统、通用的sql数据库存取和操作的公共接口,定义了用来访问数据库的标准类库,使用这个标准类库可以以一种标准的方式,方便地访问数据库资源。本实施例中,基于jdbc开发的统一访问接口为访问不同的数据库提供了一种统一的途径,为开发者、运维人员屏蔽了一些细节问题。本实施例建立统一访问接口的目标是使etl工具通过jdbc可以连接任何提供了jdbc驱动程序的数据库系统。
32.本实施例中,统一访问接口中可以预先加载了不同数据库的数据库驱动程序,当用户需要连接某个数据库以获取数据库中的数据时,可以在统一访问接口上选择该数据库,则该数据库为用户选中的目标数据库。
33.步骤102,接收用户配置的数据库连接信息,所述数据库连接信息包括所述目标数据库的访问地址、用户账号信息和登录密码。
34.本实施例中,为了实现etl工具与目标数据库的连接,用户可以在etl工具中配置数据库连接信息,以使etl工具根据接收到的数据库连接信息连接对应的目标数据库,其中,数据库连接信息至少包括目标数据库的访问地址url(uniform resource locator,统一资源定位符)、用户账号信息user和登录密码password,还可以包括端口、数据库名称等其他信息,本公开对此不作限制,用户账号信息可以是但不限于是账号名称、手机号码、邮箱地址等。
35.示例性地,用户可以通过connection接口来配置数据库连接信息。
36.例如,通过语句“connectionconn=drivermanager.getconnection("url","user","password")”来配置数据库连接信息。
37.步骤103,根据所述数据库连接信息,通过所述统一访问接口连接与所述访问地址对应的目标数据库,以获得connection对象。
38.本实施例中,根据用户配置的数据库连接信息,可以通过统一访问接口建立与访问地址所对应的目标数据库的连接,在连接时,根据访问地址找到待连接的目标数据库,进而根据用户账号信息和登录密码登录目标数据库,完成统一访问接口与目标数据库的连接,在连接完成后,统一访问接口会获得一个connection对象。
39.步骤104,根据从所述connection对象获取的所述目标数据库的相关信息,通过所述统一访问接口从所述目标数据库中获取数据以进行数据清洗、转换和加载。
40.本实施例中,获得connection对象之后,可以从该connection对象获得有关数据库管理系统的各种信息,比如数据库中的各个表、表中的各个列、数据类型、触发器、存储过程等各方面的信息,根据这些信息,etl工具通过统一访问接口可以访问一个事先并不了解的数据库,从该数据库中获取数据,从而进行数据清洗、转换和加载。由此,通过建立高效的统一访问接口,可以接入不同数据库完成横纵向数据交换问题,开发人员不需要关心底层数据库的差异细节,只要在统一访问接口上选择正确的数据库类型,配置好正确的数据库
连接信息就可以获取到数据库中的数据,实现了便捷高效地访问不同类型的数据库,极大地简化和加快开发运维过程。
41.本实施例的基于jdbc的多数据库接入方法,通过获取用户在统一访问接口上选择的目标数据库,并接收用户配置的数据库连接信息,数据库连接信息包括目标数据库的访问地址、用户账号信息和登录密码,根据数据库连接信息,通过etl工具上建立的统一访问接口连接与访问地址对应的目标数据库,以获得connection对象,进而根据从connection对象获取的目标数据库的相关信息,通过统一访问接口从目标数据库中获取数据以进行数据清洗、转换和加载,由此,建立了高效统一的数据库访问接口,采用统一访问接口可以访问不同的数据库,实现了不同数据库的统一接入,无需考虑数据库的差异细节,灵活性强。
42.在本公开实施例一种可能的实施方式中,可以预先在统一访问接口中加载数据库对应的jdbc驱动程序,以生成统一访问接口列表。其中,jdbc驱动程序需要实现java.sql.driver接口,该接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。比如,可以将oracle、mysql、pgsql等数据库对应的jdbc驱动程序加载至统一访问接口,生成统一访问接口列表,从而,对支持jdbc链接方式的所有数据库进行了访问接口的统一,屏蔽了数据库之间的差异。
43.进一步地,在本公开实施例一种可能的实施方式中,根据所述数据库连接信息,通过所述统一访问接口连接与所述访问地址对应的目标数据库,以获得connection对象,可以包括:
44.根据所述数据库连接信息,查询所述统一访问接口列表中是否存在所述目标数据库对应的目标jdbc驱动程序;
45.若所述统一访问接口列表中存在所述目标数据库对应的目标jdbc驱动程序,则通过所述统一访问接口连接与所述访问地址对应的目标数据库,以获得connection对象。
46.作为一种示例,统一访问接口列表中的各个jdbc驱动程序,可以利用对应数据库的访问地址作为唯一标识,在接收到用户配置的数据库连接信息后,可以根据数据库连接信息中的访问地址来查询统一访问接口列表,若查询到相同的访问地址,则确定统一访问接口列表中存在访问地址所对应的目标数据库的目标jdbc驱动程序,进而通过统一访问接口连接与访问地址对应的目标数据库,以获得connection对象。
47.进一步地,在本公开实施例一种可能的实施方式中,若在统一访问接口列表中未查询到与数据库连接信息中的访问地址相同的访问地址,则确定统一访问接口列表中不存在该访问地址所对应的目标数据库的目标jdbc驱动程序,这种情况下,可以接收用户在统一访问接口中添加的目标数据库的目标jdbc驱动程序,并将所述目标jdbc驱动程序添加至所述统一访问接口列表中。
48.示例性地,可以将目标数据库的访问地址作为目标jdbc驱动程序的标识加载至统一访问接口列表中。
49.也就是说,如果统一访问接口列表中不存在希望访问的目标数据库,则只需要提供该目标数据库的jdbc驱动程序,即可将该目标数据库加入统一访问接口,之后仍可以通过统一访问接口访问该新加入的目标数据库来获取目标数据库中的数据。
50.通过在统一访问接口列表中不存在目标数据库对应的目标jdbc驱动程序时,接收用户在统一访问接口中添加的目标数据库的目标jdbc驱动程序,并将目标jdbc驱动程序添
加至统一访问接口列表中,由此,使得统一访问接口支持灵活可扩展,对新加入的数据库类型,通过提供相关的jdbc驱动程序,就可以纳入etl的统一访问接口中。
51.在本公开实施例一种可能的实现方式中,统一访问接口由驱动接口、驱动管理器和jdbc的api(application programming interface,应用程序接口)接口组成。
52.图2为etl工具通过统一访问接口与数据库连接的总体架构示意图,需要说明的是,统一访问接口是etl工具数据接入节点部分的功能,但为了便于理解统一访问接口如何将不同类型关系型数据库统一,图2中将etl工具和统一访问接口加以区分,但应当理解的是,统一访问接口并非独立于etl整个流程之外。如图2所示,连接oracle(提供基于jdbc的oracle驱动程序)、mysql(提供基于jdbc的mysql驱动程序)、pgsql(提供基于jdbc的pgsql驱动程序)等不同类型数据库时,都可以使用统一访问接口来访问,不需要关心数据库的差异细节;新增的dm数据库,只需要在统一访问接口中加入dm数据库的驱动程序(即基于jdbc的dm驱动程序)就可以用同一个统一访问接口访问dm数据库的数据信息。
53.图3为基于jdbc的统一访问接口的结构示意图,如图3所示,该统一访问接口由jdbc的api、驱动管理器和驱动接口构成。统一访问接口通过驱动接口实现对oracle(提供基于jdbc的oracle驱动程序)、db2(提供基于jdbc的db2驱动程序)等多类型关系型数据库的驱动程序的加载;驱动加载完成后通过驱动管理器获取数据库的链接,包括数据库的url、端口、用户名、密码等;使用jdbc的api对多种关系型数据库引擎操作进行接口统一和语义转换,从而实现抽象部分和实现部分解耦,使用户在使用etl数据加载节点时不必手动选择数据库类型,只需配置数据库的url、端口、用户名、密码即可登录。图3中,基于jdbc的etl工具,使用jdbc的api,相当于是对数据库操作的抽象的扩展,算作桥接模式的抽象部分;而具体的接口实现是由驱动来完成的,驱动这边自然就相当于桥接模式的实现部分了。而桥接的方式,不再是让抽象部分持有实现部分,而是采用了类似于工厂的做法,通过驱动管理器来把抽象部分和实现部分对接起来,从而实现了抽象部分和实现部分解耦。
54.为了实现上述实施例,本公开还提供了一种基于jdbc的多数据库接入装置。
55.图4为本公开一实施例提供的基于jdbc的多数据库接入装置的结构示意图,所述基于jdbc的多数据库接入装置应用于etl工具,所述etl工具包括基于jdbc开发的统一访问接口。所述基于jdbc的多数据库接入装置可以采用软件和/或硬件实现,并可集成在任意具有处理能力的电子设备上,例如台式电脑、平板电脑等设备。
56.如图4所示,本公开实施例提供的基于jdbc的多数据库接入装置40可以包括第一获取模块401、接收模块402、连接模块403和第二获取模块404,其中:
57.第一获取模块401,用于获取用户在所述统一访问接口上选择的目标数据库;
58.接收模块402,用于接收用户配置的数据库连接信息,所述数据库连接信息包括所述目标数据库的访问地址、用户账号信息和登录密码;
59.连接模块403,用于根据所述数据库连接信息,通过所述统一访问接口连接与所述访问地址对应的目标数据库,以获得connection对象;
60.第二获取模块404,用于根据从所述connection对象获取的所述目标数据库的相关信息,通过所述统一访问接口从所述目标数据库中获取数据以进行数据清洗、转换和加载。
61.可选地,所述基于jdbc的多数据库接入装置40,还包括:
62.加载模块,用于在所述统一访问接口中加载数据库对应的jdbc驱动程序以生成统一访问接口列表。
63.可选地,所述连接模块403,具体用于:
64.根据所述数据库连接信息,查询所述统一访问接口列表中是否存在所述目标数据库对应的目标jdbc驱动程序;
65.若所述统一访问接口列表中存在所述目标数据库对应的目标jdbc驱动程序,则通过所述统一访问接口连接与所述访问地址对应的目标数据库,以获得connection对象。
66.可选地,所述基于jdbc的多数据库接入装置40,还包括:
67.添加模块,用于在所述统一访问接口列表中不存在所述目标数据库对应的目标jdbc驱动程序的情况下,接收用户在所述统一访问接口中添加的所述目标数据库的目标jdbc驱动程序;将所述目标jdbc驱动程序添加至所述统一访问接口列表中。
68.可选地,所述统一访问接口由驱动接口、驱动管理器和jdbc的api接口组成。
69.本公开实施例所提供的可配置于台式电脑等电子设备上的基于jdbc的多数据库接入装置,可执行本公开实施例所提供的任意可应用于台式电脑等电子设备的基于jdbc的多数据库接入方法,具备执行方法相应的功能模块和有益效果。本公开装置实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
70.本公开实施例还提供了一种电子设备,包括处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行如前述实施例所述基于jdbc的多数据库接入方法各实施例的步骤,为避免重复描述,在此不再赘述。
71.本公开实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如前述实施例所述基于jdbc的多数据库接入方法各实施例的步骤,为避免重复描述,在此不再赘述。
72.本公开实施例还提供了一种计算机程序产品,所述计算机程序产品用于执行如前述实施例所述基于jdbc的多数据库接入方法各实施例的步骤。
73.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
74.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献