掌桥专利:专业的专利平台
掌桥专利
首页

数据导入方法、装置、存储介质及处理器

文献发布时间:2023-06-19 09:47:53


数据导入方法、装置、存储介质及处理器

技术领域

本发明涉及计算机技术领域,具体地涉及一种数据导入方法、装置、存储介质及处理器。

背景技术

将内存数据导入到数据库时,利用C#开发,除了使用第三方或者微软本身提供的ORM(Object Relational Mapping,对象关系映射)框架之外,目前最通用的办法就是使用微软提供的ADO.NET框架。ADO.NET中IDbCommand接口中的ExecuteNonQuery方法执行一条提前编写好的Sql语句,将数据导入数据库中。

由于在现有技术中往往需要将内存中的不同数据导入数据库中,而在将不同的内存数据导入数据库时,需要编写不同的sql语句,但是sql语句在程序编译时不易查错,只能等到程序运行时才会发现错误,而且针对不同对象通用性不强,存储效率低。

发明内容

本发明实施例的目的是提供一种数据导入方法、装置、存储介质及处理器,解决了现有技术中不同内存数据导入数据库时,需要逐一编译不同的sql语句,编译不易查错,通用性不强的问题,通过本发明实施例可根据预设映射关系与内存中的网络虚拟表,将任意内存数据导入数据库表中,通用性强,且提高了开发效率,以及数据存储的准确性。

为了实现上述目的,本发明实施例提供一种数据导入方法,所述方法包括:根据预设映射关系与内存中的网络虚拟表,将内存数据导入目标数据库表中,所述预设映射关系为内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,所述网络虚拟表的表头信息与所述内存数据的字段信息一致或与所述目标数据库表中的表头信息一致。

进一步地,当所述网络虚拟表的表头信息与所述内存数据的字段信息一致时,所述根据预设映射关系与内存中的网络虚拟表,将内存数据导入目标数据库表中包括:将所述内存数据存入所述网络虚拟表中;根据所述预设映射关系,将所述网络虚拟表中的数据导入所述目标数据库表中。

进一步地,当所述网络虚拟表的表头信息与所述目标数据库表中的表头信息一致时,所述根据预设映射关系与内存中的网络虚拟表,将内存数据导入目标数据库表中包括:根据所述预设映射关系,将所述内存数据存入所述网络虚拟表中;将所述网络虚拟表中的数据导入所述目标数据库表中。

进一步地,所述方法还包括:根据内存数据的各字段与目标数据库表表头中各字段的相似度匹配结果,建立内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,得到所述预设映射关系。

进一步地,所述方法还包括:根据内存数据的各字段与目标数据库表表头中各字段的语义识别结果,建立内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,得到所述预设映射关系。

进一步地,所述方法还包括:利用内存数据的各字段与目标数据库表表头中各字段的属性标记对比结果,标记内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,确定所述预设映射关系。

相应的,本发明实施例还提供一种数据导入装置,所述装置包括:保存单元,用于根据预设映射关系与内存中的网络虚拟表,将内存数据导入目标数据库表中,所述预设映射关系为内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,所述网络虚拟表的表头信息与所述内存数据的字段信息一致或与所述目标数据库表中的表头信息一致。

进一步地,所述保存单元包括:第一网络虚拟表生成模块,用于当所述网络虚拟表的表头信息与所述内存数据的字段信息一致时,将所述内存数据存入所述网络虚拟表中;第一导入模块,用于根据所述预设映射关系,将所述网络虚拟表中的数据导入所述目标数据库表中;和/或,第二网络虚拟表生成模块,用于当所述网络虚拟表的表头信息与所述目标数据库表中的表头信息一致时,根据所述预设映射关系,将所述内存数据存入所述网络虚拟表中;第二导入模块,用于将所述网络虚拟表中的数据导入所述目标数据库表中。

相应的,本发明实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的数据导入方法。

相应的,本发明实施例还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的数据导入方法。

通过上述技术方案,根据预设映射关系与内存中的网络虚拟表,将内存数据导入目标数据库表中,所述预设映射关系为内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,所述网络虚拟表的表头信息与所述内存数据的字段信息一致或与所述目标数据库表中的表头信息一致。本发明实施例解决了现有技术中不同内存数据导入数据库时,需要逐一编译不同的sql语句,编译不易查错,通用性不强的问题,通过本发明实施例可对内存中的任意数据进行处理,极大的提高了开发效率,以及数据存储的准确性。

附图说明

图1是本发明实施例提供的一种数据导入方法的流程示意图;

图2是本发明实施例提供的利用Attribute标记所述内存数据的字段信息的程序示例;

图3是本发明实施例提供的标识内存数据的字段信息与目标数据库表的表头信息的对应关系的程序示例;

图4是本发明实施例提供的又一种数据导入方法的流程示意图;

图5是本发明实施例提供的另一种数据导入方法的流程示意图;

图6是本发明实施例提供的一种数据导入装置的结构示意图;

图7是本发明实施例提供的另一种数据导入装置的结构示意图;

图8是本发明实施例提供的又一种数据导入装置的结构示意图;。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是本发明实施例提供的一种数据导入方法的流程示意图。如图1所示,所述方法包括如下步骤:

步骤101,根据预设映射关系与内存中的网络虚拟表,将内存数据导入目标数据库表中,所述预设映射关系为内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,所述网络虚拟表的表头信息与所述内存数据的字段信息一致或与所述目标数据库表中的表头信息一致。

其中,由于内存数据的开发者与数据库表的构建者可能不是同一组人员,因此对于同一含义的字段可能会被定义为不同的名字,因此需要内存数据的字段信息与目标数据库表中的表头信息的对应关系,即预设映射关系。

所述预设映射关系可通过下述三种方式获得:

第一种,根据内存数据的各字段与目标数据库表表头中各字段的相似度匹配结果,建立内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,得到所述预设映射关系。例如,通过比较内存数据的字段信息与目标数据库表中的表头信息中的字符串相似度(如EmployeeID与employee_id),来得到所述预设映射关系。

第二种,根据内存数据的各字段与目标数据库表表头中各字段的语义识别结果,建立内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,得到所述预设映射关系。例如,通过确定内存数据的字段信息与目标数据库表中的表头信息的语义,从而利用同义词或近义词(如gender与sex),来得到所述预设映射关系。

第三种,利用内存数据的各字段与目标数据库表表头中各字段的属性标记对比结果,标记内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,确定所述预设映射关系。例如,由于现有技术中的微软.net中提供的Attribute功能,可以对类或者类中的属性进行描述,所以在本发明实施例中采用Attribute功能来标记内存数据的字段信息,如图2所示,将目标数据库表中的数据库列名,也就是表头信息,利用Attribute功能标记内存数据的字段信息,然后建立所述目标数据库表中的表头信息与所述内存数据的字段信息之间的对应关系,得到所述预设映射关系。以图3所示的数据为例,由于所述目标数据库表的表头信息包括员工ID、员工姓名、员工年龄,分别表示为employee_id,employee_name,employee_age,对应利用Attribute功能标记的所述内存数据的字段信息为EmployeeID,Name,Age,并分别将上述目标数据库表表头中的字段employee_id与所述内存数据的字段信息EmployeeID、字段employee_name与字段信息Name、以及字段employee_age与字段信息Age建立关联。

上述预设映射关系的配置可以是人工配置,也可以是机器自动配置,在本发明实施例中不做限定。

另外,由于所述网络虚拟表的表头信息可以与所述内存数据的字段信息一致,或者与所述目标数据库表中的表头信息一致。当所述网络虚拟表的表头信息与不同的信息一致时,上述预设映射关系也存在下述两个实施例的应用情况。

在本发明实施例的一种实施方式中,当所述网络虚拟表的表头信息与所述内存数据的字段信息一致时,如图4所示,所述方法包括如下步骤:

步骤401,将所述内存数据存入所述网络虚拟表中;

步骤402,根据所述预设映射关系,将所述网络虚拟表中的数据导入所述目标数据库表中。

其中,在本发明实施例中,由于所述网络虚拟表的表头信息与所述内存数据的字段信息一致,可以直接将内存数据的字段信息写入所述网络虚拟表中的表头,然后直接将所述内存数据存入所述网络虚拟表中,并根据上述三种方式获得的预设映射关系,将整个网络虚拟表中的数据导入所述目标数据库表中。所述网络虚拟表中的数据专门指由内存数据存入网络虚拟表后、存储在网络虚拟表中的那些数据。本发明实施例可通过与数据库的一次交互即可将内存数据导入目标数据库表中,而无需如现有技术所述内存数据有多少条,就需要与数据库交互多少次。本发明实施例提高了数据存储效率以及数据存储的准确性。

在本发明实施例的另一种实施方式中,当所述网络虚拟表的表头信息与所述目标数据库表中的表头信息一致时,如图5所示,包括如下步骤:

步骤501,根据所述预设映射关系,将所述内存数据存入所述网络虚拟表中;

步骤502,将所述网络虚拟表中的数据导入所述目标数据库表中。

其中,在本发明实施例中可利用现有技术中内存中的DataTable表作为网络虚拟表,在将DataTable表导入目标数据库表中时,必须保证DataTable表的架构与目标数据库表一致,因此,需要将目标数据库表中的表头信息写入DataTable表中的表头,然后根据上述三种方式获得的预设映射关系,确定将内存数据对应存储在DataTable表中的哪一行,从而将所述内存数据存入所述DataTable表中。而且存储的格式与所述目标数据库表中的格式一致,为下一步利用C#的SqlBulkCopy功能,将所述DataTable表中的数据导入所述目标数据库表中提供支持。之后,利用SqlBulkCopy功能,直接将DataTable表中的数据整块搬进所述目标数据库表中。

本发明实施例应用灵活,可对存储在内存中的任何数据进行处理,根据预设映射关系,将内存数据保存到DataTable中,通过C#的SQLBulkCopy将所述DataTable表中的数据导入目标数据库表中,极大的提高了开发效率,以及数据存储的准确性。

相应的,图6是本发明实施例提供的一种数据导入装置的结构示意图。如图6所示,所述装置60包括:保存单元61,用于根据预设映射关系与内存中的网络虚拟表,将内存数据导入目标数据库表中,所述预设映射关系为内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,所述网络虚拟表的表头信息与所述内存数据的字段信息一致或与所述目标数据库表中的表头信息一致。

在本发明实施例的一种实施方式中,如图7所示,所述保存单元61包括:

第一网络虚拟表生成模块611,用于当网络虚拟表的表头信息与内存数据的字段信息一致时,将内存数据存入网络虚拟表中;第一导入模块612,用于根据预设映射关系,将网络虚拟表中的数据导入目标数据库表中;

和/或,第二网络虚拟表生成模块613,用于当网络虚拟表的表头信息与目标数据库表中的表头信息一致时,根据预设映射关系,将内存数据存入网络虚拟表中;第二导入模块614,用于将网络虚拟表中的数据导入目标数据库表中。

相应的,如图8所示,所述装置还包括:预设映射关系建立单元81,用于根据内存数据的各字段与目标数据库表表头中各字段的相似度匹配结果,建立内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,得到所述预设映射关系。

可选的,所述预设映射关系建立单元还可以用于根据内存数据的各字段与目标数据库表表头中各字段的语义识别结果,建立内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,得到所述预设映射关系。

可选的,所述预设映射关系建立单元还可以用于利用内存数据的各字段与目标数据库表表头中各字段的属性标记对比结果,标记内存数据的字段信息与所述目标数据库表中的表头信息的对应关系,确定所述预设映射关系。

本装置操作过程,参见上述内存数据的处理方法的实现过程。

相应的,本发明实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上述实施例所述的数据导入方法。

相应的,本发明实施例还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上述实施例所述的数据导入方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 数据导入方法、装置、存储介质及处理器
  • 图数据库的数据导入方法和装置、存储介质及电子设备
技术分类

06120112304245