首页 / 专利库 / 资料储存系统 / 数据库管理系统 / 建表脚本的生成方法、装置、计算机设备及存储介质

建表脚本的生成方法、装置、计算机设备及存储介质

阅读:797发布:2020-05-13

专利汇可以提供建表脚本的生成方法、装置、计算机设备及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 实施例 提供了一种建表脚本的生成方法、装置、计算机设备及计算机可读存储介质。本申请实施例属于 数据库 开发技术,实现建表脚本的生成时,获取Excel文件,Excel文件中包含建立数据库表所需的表数据,表数据包括表名称、所述数据库表中包含的字段及其数据类型;通过预设方式解析Excel文件以得到表数据;通过第一预设方法,将表数据对应插入预设的用于建立数据库表的语法格式中以得到多个分脚本;根据建立数据库表所使用的 数据库管理系统 的语法,通过第二预设方法将多个分脚本进行拼接以生成建立数据库表的脚本,通过自动生成建表脚本,节省了生成建表脚本的时间成本,提高了建表脚本的生成的效率。,下面是建表脚本的生成方法、装置、计算机设备及存储介质专利的具体信息内容。

1.一种建表脚本的生成方法,其特征在于,所述方法包括:
获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型;
通过预设方式解析所述Excel文件以得到所述表数据;
通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本;
根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
2.根据权利要求1所述建表脚本的生成方法,其特征在于,所述Excel文件中包含多个工作表,所述通过预设方式解析所述Excel文件以得到所述表数据的步骤之前,还包括:
循环遍历所述Excel文件的每个工作表;
所述通过预设方式解析所述Excel文件以得到所述表数据的步骤包括:
通过预设方式解析每个所述工作表以得到每个所述工作表对应的数据库表的表数据。
3.根据权利要求2所述建表脚本的生成方法,其特征在于,所述通过预设方式解析每个所述工作表以得到每个所述工作表对应的数据库表的表数据的步骤包括:
通过预设方式解析每个所述工作表,将每个所述工作表转换为二维数组以得到每个所述工作表对应的所述数据库表的表数据;
所述通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本的步骤包括:
通过第一预设方法,将每个所述工作表对应的所述数据库表的表数据对应插入预设的用于建立所述数据库表的语法格式中以得到每个所述数据库表对应的多个分脚本;
所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤包括:
根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将每个所述数据库表对应的多个所述分脚本分别进行拼接以对应生成建立每个所述数据库表的脚本。
4.根据权利要求1所述建表脚本的生成方法,其特征在于,所述通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本的步骤包括:
通过StringBuffer类的Insert方法,将所述表数据对应插入预设的用于建立所述数据库表的SQL语法格式中以得到多个SQL分脚本。
5.根据权利要求4所述建表脚本的生成方法,其特征在于,所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤包括:
根据建立所述数据库表所使用的数据库管理系统的语法,通过StringBuffer类中的Append方法将多个所述分脚本进行拼接以得到建立所述数据库表的初始脚本;
采用ToString方法将所述初始脚本进行字符串格式化以生成建立所述数据库表的脚本。
6.根据权利要求1所述建表脚本的生成方法,其特征在于,所述通过预设方式解析所述Excel文件以得到所述表数据的步骤包括:
通过JAVA中POI包或者Jxl.jar获取所述Excel文件中包含的所述表数据。
7.根据权利要求1所述建表脚本的生成方法,其特征在于,所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤之后,还包括:
使用IO流把建立所述数据库表的脚本进行封装。
8.一种建表脚本的生成装置,其特征在于,包括:
获取单元,用于获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型;
解析单元,用于通过预设方式解析所述Excel文件以得到所述表数据;
插入单元,用于通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本;
生成单元,用于根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行如权利要求1-7任一项所述建表脚本的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行如权利要求1-7中任一项所述建表脚本的生成方法的步骤。

说明书全文

建表脚本的生成方法、装置、计算机设备及存储介质

技术领域

[0001] 本申请涉及数据库开发技术领域,尤其涉及一种建表脚本的生成方法、装置、计算机设备及计算机可读存储介质。

背景技术

[0002] 建立数据库表,简称建表,建立数据库表的脚本,简称建表脚本,又可以称为建表脚本。由于任何数据需求都离不开数据库表,所以建表是开发的第一步。传统技术中,建表一般是通过IT行业的编码人员通过书写代码来建立数据库表的脚本,尤其是需要建立多个数据库表时,建表是个既繁杂又没有技术含量的工作,并且容易出现字符及格式等笔误,尤其字段很多的情况,更要花费很大的时间成本,导致大大降低了建表脚本的生成效率。发明内容
[0003] 本申请实施例提供了一种建表脚本的生成方法、装置、计算机设备及计算机可读存储介质,能够解决传统技术中建表脚本的生成效率低的问题。
[0004] 第一方面,本申请实施例提供了一种建表脚本的生成方法,所述方法包括:获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型;通过预设方式解析所述Excel文件以得到所述表数据;通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本;根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
[0005] 第二方面,本申请实施例还提供了一种建表脚本的生成装置,包括:获取单元,用于获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型;解析单元,用于通过预设方式解析所述Excel文件以得到所述表数据;插入单元,用于通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本;生成单元,用于根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
[0006] 第三方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述建表脚本的生成方法。
[0007] 第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行所述建表脚本的生成方法。
[0008] 本申请实施例提供了一种建表脚本的生成方法、装置、计算机设备及计算机可读存储介质。本申请实施例实现建表脚本的生成时,只需开发人员将字段名称和表名称写入Excel文件,计算机设备获取所述Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型,即可自动通过预设方式解析所述Excel文件以得到所述表数据,并通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本,然后根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本,从而实现了自动生成建表脚本,相对于传统技术中由开发人员通过书写代码生成建立数据库表的脚本,本申请实施例通过自动生成建表脚本,让开发人员从繁杂而没有技术含量的机械性劳动中解脱出来,节省了生成建表脚本的时间成本,提高了建表脚本的生成的效率。附图说明
[0009] 为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0010] 图1为本申请实施例提供的建表脚本的生成方法的流程示意图;
[0011] 图2为本申请实施例提供的建表脚本的生成装置的示意性框图;以及
[0012] 图3为本申请实施例提供的计算机设备的示意性框图。

具体实施方式

[0013] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0014] 应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0015] 还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0016] 还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0017] 本申请实施例提供的建表脚本的生成方法可应用于终端或者服务器等计算机设备中,通过安装于终端或者服务器上的软件来实现所述建表脚本的生成方法的步骤,其中所述终端可以为手机、笔记本电脑平板电脑或者台式电脑等电子设备,所述服务器可以为服务器或者服务器集群等。以终端为例,本申请实施例提供的建表脚本的生成方法的具体实现过程如下:终端获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型,所述表数据由开发人员填写入所述Excel文件中,终端通过预设方式解析所述Excel文件以得到所述表数据,通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本,根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
[0018] 需要说明的是,在实际操作过程中,上述建表脚本的生成方法的应用场景仅仅用于说明本申请技术方案,并不用于限定本申请技术方案。
[0019] 图1为本申请实施例提供的建表脚本的生成方法的示意性流程图。该建表脚本的生成方法应用于终端或者服务器中,该方法通过安装于所述终端或服务器中的应用软件来实现,具体可例如为以系统方式存在,其中,所述终端或者服务器即是用于执行完成建表脚本的生成方法的全部或者部分功能的计算机设备。请参阅图1,如图1所示,该方法包括以下步骤S101-S104:
[0020] S101、获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型。
[0021] 具体地,建立数据库表的脚本,实则指建立数据库表的代码。创建一个数据库中的表,一般代码结构为:
[0022] CREATE TABLE表名称
[0023] (
[0024] 列名称1数据类型,
[0025] 列名称2数据类型,
[0026] .......
[0027] )
[0028] 由于创建一个数据库表至少需要数据库表的表名称、所述数据库表中包含的字段及所述字段的数据类型,并且表名称、所述数据库表中包含的字段及所述字段的数据类型是需要用户进行自定义的,所以这部分内容需要用户通过Excel文件进行设置,比如,上述例子中,Excel模板中就会包含表名称、列名称1及其数据类型、列名称2及其数据类型2等字段。可以预先在所述终端或服务器中用于实现本发明方法的系统中设置用户填写表数据的Excel模板,用户可以在阅读使用说明后,下载系统自带的Excel模板,根据Excel模板填写表结构,其中,用户根据Excel模板填写表结构,是指用户根据模板Excel填写Excel模板中包含的数据库表包含的表名、字段等信息,并将表结构填写完毕Excel模板生成的Excel文件保存到本地目录,后续例如通过“上传文件”按钮从本地目录中将Excel文件进行上传,也即通过点击“选择文件”选择Excel文件将Excel文件从本地进行上传以使计算机设备获取Excel文件。其中,Excel模板中,可以默认Sheet1页是导航页,放置各个表的概览信息,从Sheet2页开始按照模板填写表结构,后续脚本会根据Sheet2页、Sheet3页……等的表结构自动生成建表脚本。
[0029] 计算机设备获取用户上传的Excel文件,所述Excel文件中包含建立数据库表所需的表名称、字段及所述字段的数据类型,也即包含建立数据库表所需的表名称、数据库表中包含的列名称及列字段的数据类型。
[0030] S102、通过预设方式解析所述Excel文件以得到所述表数据。
[0031] 其中,预设方式包括JAR包及Python中的库。JAR包包括JAVA中的POI包和JXL包;Python中的库包括Xlrd库。
[0032] 具体地,计算机设备通过预设方式解析所述Excel文件以得到所述表数据,比如,计算机设备使用JAR包解析所述Excel文件以得到建表的表数据,所述表数据包括表名、字段名及该字段的数据类型。
[0033] 进一步地,在一个实施例中,所述通过预设方式解析所述Excel文件以得到所述表数据的步骤包括:
[0034] 通过JAVA中POI包或者Jxl.jar获取所述Excel文件中包含的所述表数据。
[0035] 具体地,利用第三方JAR包解析Excel内容,在JAVA中采用JAR包读取Excel表格的内容,一种方式是导入POI包,另一种方式是导入JXL包。JAVA通过POI包解析Excel,在POI中,解析XLS格式的Excel表格使用的是HSSFWorkbook,解析.XLSX格式的表格使用的是XSSFWorkbook,从而获得建立数据库表需要的表名、字段名及字段的数据类型等Excel文件的内容,其中,JAVA通过包jxl.jar,可以实现从Excel文件中读取指定的行和列的值,Java读取Excel文件,并可以将Excel文件变为二维String数组,从而获取建表所需的表名和字段名。
[0036] S103、通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本。
[0037] 具体地,若要创建一个SQL数据库管理系统的数据库表A,该数据库表A包含两列B和C,人工书写的创建表的脚本为:
[0038] CREATE TABLE表名称A;//ADD1
[0039] (
[0040] 列名称B数据类型;//ADD2
[0041] 列名称C数据类型;//ADD3
[0042] .......
[0043] )
[0044] 预先设置建立所述数据库表的语法格式为:
[0045] CREATE TABLE X1;//ADD1
[0046] (
[0047] X2 X3;//ADD2
[0048] X4 X5;//ADD3
[0049] .......
[0050] )
[0051] 通过本申请实施例的方法创建生成数据库表A的脚本时,用户仅需通过简单操作则可自动生成,例如通过点击系统上的“选择文件夹”以选择存放生成的建表脚本的目录,最后,点击“生成脚本”即可。其中,生成建表脚本是利用第三方Jar包解析Excel文件的内容,比如Java通过POI包解析Excel文件,由于Excel文件中包含用户根据Excel模板填写的表名称A、列名称B及其数据类型、列名称C及其数据类型等字段,从而获得建立数据库表需要的表名称A、列名称B及其数据类型、列名称C及其数据类型等字段。
[0052] 在一个实施例中,第一预设方法包括StringBuffer类Insert方法。所述通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本的步骤包括:
[0053] 通过StringBuffer类的Insert方法,将所述表数据对应插入预设的用于建立所述数据库表的SQL语法格式中以得到多个SQL分脚本。
[0054] 具体地,JAVA中,通过第三方JAR包解析Excel内容后会获得表名称A、列名称B及其数据类型、列名称C及其数据类型,然后使用StringBuffer类的Insert方法,比如使用如下脚本:public insert(int offset,int i),表示将int参数的字符串表示形式插入此序列中,将表名称A插入CREATE TABLE后ADD1的位置X1处,将列名称B及其数据类型分别对应插入ADD2的位置X2处和X3处,将列名称C及其数据类型插入ADD3的位置X4处和X5处,从而获得多个分脚本,比如,“CREATE TABLE表名称A”、“列名称B数据类型”、“列名称C数据类型;//ADD3”。
[0055] S104、根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
[0056] 其中,第二预设方法包括StringBuffer类中的append方法和appendTo方法。
[0057] 具体地,获得多个分脚本后,根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
[0058] 进一步地,在一个实施例中,所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤包括:
[0059] 根据建立所述数据库表所使用的数据库管理系统的语法,通过StringBuffer类中的Append方法将多个所述分脚本进行拼接以得到建立所述数据库表的初始脚本;
[0060] 采用ToString方法将所述初始脚本进行字符串格式化以生成建立所述数据库表的脚本。
[0061] 具体地,以上述SQL数据库管理系统为例,获得多个SQL分脚本之后,按照SQL语法,采用StringBuffer类将多个分脚本拼接成建表脚本。其中,除了使用StringBuffer类拼接SQL脚本,也可以使用StringBuilder类拼接SQL脚本。拼接SQL脚本,实则为采用Stringbuffer根据SQL语法不停的append SQL脚本,最后Tostring一下。其中,public StringBuffer append(String s),将指定的字符串追加到此字符序列,Tostring方法是把Tostring()前面的数据转换成字符串格式,ToString方法会返回一个“以文本方式表示”此对象的字符串。比如,将上述举例中获得的“CREATE TABLE表名称A”、“列名称B数据类型”及“列名称C数据类型”等SQL脚本,通过Stringbuffer根据SQL语法不停的append SQL脚本,最后Tostring一下,套用SQL语法的上述格式,即可通过本申请实施例的方法获得与上述人工书写的创建表A的脚本一样的建表A的SQL脚本。
[0062] 本申请实施例实现建表脚本的生成时,只需开发人员将字段名称和表名称写入Excel文件,计算机设备获取所述Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型,即可自动通过预设方式解析所述Excel文件以得到所述表数据,并通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本,然后根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本,从而实现了自动生成建表脚本,相对于传统技术中由开发人员通过书写代码生成建立数据库表的脚本,本申请实施例通过自动生成建表脚本,让开发人员从繁杂而没有技术含量的机械性劳动中解脱出来,节省了生成建表脚本的时间成本,提高了建表脚本的生成的效率。
[0063] 在一个实施例中,所述Excel文件中包含多个工作表,所述通过预设方式解析所述Excel文件以得到所述表数据的步骤之前,还包括:
[0064] 循环遍历所述Excel文件的每个工作表;
[0065] 所述通过预设方式解析所述Excel文件以得到所述表数据的步骤包括:
[0066] 通过预设方式解析每个所述工作表以得到每个所述工作表对应的数据库表的表数据。
[0067] 其中,遍历,英文为Traversal,是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问
[0068] 具体地,针对Excel文件包含多个工作表,每个工作表对应建立一个数据库表的情形,需要对每个工作表逐一进行解析。计算机设备获取Excel文件,通过预设方式解析所述Excel文件中包含的第一个工作表,然后循环遍历Excel文件的所有Sheet页以获得各个对应待建表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型,也即通过预设方式解析每个所述工作表以将每个所述工作表转换为二维数组以得到每个所述工作表对应的数据库表的表数据,通过第一预设方法将每个所述表数据对应插入预设的建立所述数据库表的语法格式以得到每个数据库表对应的多个分脚本,根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将每个数据库表对应的多个分脚本分别进行拼接以对应生成多个建立所述数据库表的脚本,从而获得各个对应待建表的建表脚本。
[0069] 通过Excel文件中包含多个工作表,用户只需要根据Excel模板填写待建立的多个数据库表中建立每个数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型等表数据,结合预设的建立所述数据库表的语法格式,通过本申请实施例的技术方法可以实现大批量通过Excel表结构一键生成Hive建表脚本,节省了时间成本,让开发人员从繁杂而没有技术含量的机械性劳动中解脱出来,不仅节省了开发人员的人成本、提高了开发质量和编码效率,而且,该建立数据库表的方法的使用对使用者没有任何编码能力要求,即使没有编码基础的人员也能够独立完成建表脚本这一项工作,提高了建表脚本的生成的效率。其中,Hive是基于Hadoop的一个数据仓库工具。
[0070] 在一个实施例中,所述通过预设方式解析每个所述工作表以得到每个所述工作表对应的数据库表的表数据的步骤包括:
[0071] 通过预设方式解析每个所述工作表,将每个所述工作表转换为二维数组以得到每个所述工作表对应的所述数据库表的表数据;
[0072] 所述通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本的步骤包括:
[0073] 通过第一预设方法,将每个所述工作表对应的所述数据库表的表数据对应插入预设的用于建立所述数据库表的语法格式中以得到每个所述数据库表对应的多个分脚本;
[0074] 所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤包括:
[0075] 根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将每个所述数据库表对应的多个所述分脚本分别进行拼接以对应生成建立每个所述数据库表的脚本。
[0076] 具体地,对于建立多个数据库表的情形,Excel文件中每一个工作表包含的内容对应一个数据库表,也即一个Sheet页对应一个数据库表,Excel文件中一个工作表包含建立一个数据库表需要的表名称、所述数据库表中包含的字段及所述字段的数据类型,比如,要建立A、B、C、D及E五个数据库表,建立A数据库表需要的表名称、所述数据库表中包含的字段及所述字段的数据类型在一个工作表中,建立B数据库表需要的表名称、所述数据库表中包含的字段及所述字段的数据类型在另一个工作表中,依次类推,建立E数据库表需要的表名称、所述数据库表中包含的字段及所述字段的数据类型在第五个工作表中,对应A、B、C、D及E五个数据库表,Excel文件中至少对应包含有五个工作表。对于Excel文件中包含多个工作表的情形,Excel模板中就会包含多个工作表,每个工作表包含建立一个数据库表所需要的表名称、列名称1及其数据类型等信息。
[0077] 在一个实施例中,所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤之后,还包括:
[0078] 使用IO流把建立所述数据库表的脚本进行封装。
[0079] 其中,IO流,英文为Input Output Stream,中文为输入输出流,IO流就是以流的方式进行输入输出。
[0080] 具体地,建表脚本的生成时,开发人员将字段名称和表名称写入Excel文件,将所述Excel文件上传至计算机设备,计算机设备获取所述Excel文件,自动通过预设方式解析所述Excel文件以得到建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型等表数据,并通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本,然后根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本,再使用IO流把建立所述数据库表的脚本进行封装。比如,对于建立多个数据库表,Excel文件中包含多个Sheet页的情形,计算机设备获取Excel文件,然后循环遍历Excel的所有Sheet页以获得各个Sheet页对应待建表的建表脚本,再用IO流把SQL脚本写成本地文件,其中,Java的IO是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在Java中把不同的输入源和输出源(比如键盘、文件或者网络连接等)抽象表述为“流”(英文为Stream)。通过流的形式允许Java程序使用相同的方式来访问不同的输入源和输出源。
[0081] 需要说明的是,上述各个实施例所述的建表脚本的生成方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
[0082] 请参阅图2,图2为本申请实施例提供的建表脚本的生成装置的示意性框图。对应于上述建表脚本的生成方法,本申请实施例还提供一种建表脚本的生成装置。如图2所示,该建表脚本的生成装置包括用于执行上述建表脚本的生成方法的单元,该装置可以被配置于终端或者服务器等计算机设备中。具体地,请参阅图2,该建表脚本的生成装置200包括获取单元201、解析单元202、插入单元203及生成单元204。
[0083] 其中,获取单元201,用于获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型;
[0084] 解析单元202,用于通过预设方式解析所述Excel文件以得到所述表数据;
[0085] 插入单元203,用于通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本;
[0086] 生成单元204,用于根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
[0087] 在一个实施例中,所述Excel文件中包含多个工作表,所述建表脚本的生成装置200还包括:
[0088] 循环单元,用于循环遍历所述Excel文件的每个工作表;
[0089] 所述解析单元202,用于通过预设方式解析每个所述工作表以得到每个所述工作表对应的数据库表的表数据。
[0090] 在一个实施例中,所述解析单元202,用于通过预设方式解析每个所述工作表,将每个所述工作表转换为二维数组以得到每个所述工作表对应的所述数据库表的表数据;
[0091] 所述插入单元203,用于通过第一预设方法,将每个所述工作表对应的所述数据库表的表数据对应插入预设的用于建立所述数据库表的语法格式中以得到每个所述数据库表对应的多个分脚本;
[0092] 所述生成单元204,用于根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将每个所述数据库表对应的多个所述分脚本分别进行拼接以对应生成建立每个所述数据库表的脚本。
[0093] 在一个实施例中,所述插入单元203,用于通过StringBuffer类的Insert方法,将所述表数据对应插入预设的用于建立所述数据库表的SQL语法格式中以得到多个SQL分脚本。
[0094] 在一个实施例中,所述生成单元204包括:
[0095] 拼接子单元,用于根据建立所述数据库表所使用的数据库管理系统的语法,通过StringBuffer类中的Append方法将多个所述分脚本进行拼接以得到建立所述数据库表的初始脚本;
[0096] 格式化子单元,用于采用ToString方法将所述初始脚本进行字符串格式化以生成建立所述数据库表的脚本。
[0097] 在一个实施例中,所述解析单元202,用于通过JAVA中POI包或者Jxl.jar获取所述Excel文件中包含的所述表数据。
[0098] 在一个实施例中,所述建表脚本的生成装置200还包括:
[0099] 封装单元,用于使用IO流把建立所述数据库表的脚本进行封装。
[0100] 需要说明的是,所属领域的技术人员可以清楚地了解到,上述建表脚本的生成装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
[0101] 同时,上述建表脚本的生成装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将建表脚本的生成装置按照需要划分为不同的单元,也可将建表脚本的生成装置中各单元采取不同的连接顺序和方式,以完成上述建表脚本的生成装置的全部或部分功能。
[0102] 上述建表脚本的生成装置可以实现为一种计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
[0103] 请参阅图3,图3是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备300可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。
[0104] 参阅图3,该计算机设备300包括通过系统总线301连接的处理器302、存储器和网络接口305,其中,存储器可以包括非易失性存储介质303和内存储器304。
[0105] 该非易失性存储介质303可存储操作系统3031和计算机程序3032。该计算机程序3032被执行时,可使得处理器302执行一种上述建表脚本的生成方法。
[0106] 该处理器302用于提供计算和控制能力,以支撑整个计算机设备300的运行。
[0107] 该内存储器304为非易失性存储介质303中的计算机程序3032的运行提供环境,该计算机程序3032被处理器302执行时,可使得处理器302执行一种上述建表脚本的生成方法。
[0108] 该网络接口305用于与其它设备进行网络通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备300的限定,具体的计算机设备300可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图3所示实施例一致,在此不再赘述。
[0109] 其中,所述处理器302用于运行存储在存储器中的计算机程序3032,以实现如下步骤:获取Excel文件,所述Excel文件中包含建立数据库表所需的表数据,所述表数据包括建立所述数据库表所需的表名称、所述数据库表中包含的字段及所述字段的数据类型;通过预设方式解析所述Excel文件以得到所述表数据;通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本;根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本。
[0110] 在一实施例中,所述处理器302在实现所述获取Excel文件的步骤时,所述Excel文件中包含多个工作表,所述处理器302在实现所述通过预设方式解析所述Excel文件以得到所述表数据的步骤之前,还实现以下步骤:
[0111] 循环遍历所述Excel文件的每个工作表;
[0112] 所述处理器302在实现所述通过预设方式解析所述Excel文件以得到所述表数据的步骤时,具体实现以下步骤:
[0113] 通过预设方式解析每个所述工作表以得到每个所述工作表对应的数据库表的表数据。
[0114] 在一实施例中,所述处理器302在实现所述通过预设方式解析每个所述工作表以得到每个所述工作表对应的数据库表的表数据的步骤时,具体实现以下步骤:
[0115] 通过预设方式解析每个所述工作表,将每个所述工作表转换为二维数组以得到每个所述工作表对应的所述数据库表的表数据;
[0116] 所述处理器302在实现所述通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本的步骤时,具体实现以下步骤:
[0117] 通过第一预设方法,将每个所述工作表对应的所述数据库表的表数据对应插入预设的用于建立所述数据库表的语法格式中以得到每个所述数据库表对应的多个分脚本;
[0118] 所述处理器302在实现所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤时,具体实现以下步骤:
[0119] 根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将每个所述数据库表对应的多个所述分脚本分别进行拼接以对应生成建立每个所述数据库表的脚本。
[0120] 在一实施例中,所述处理器302在实现所述通过第一预设方法,将所述表数据对应插入预设的用于建立所述数据库表的语法格式中以得到多个分脚本的步骤时,具体实现以下步骤:
[0121] 通过StringBuffer类的Insert方法,将所述表数据对应插入预设的用于建立所述数据库表的SQL语法格式中以得到多个SQL分脚本。
[0122] 在一实施例中,所述处理器302在实现所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤时,具体实现以下步骤:
[0123] 根据建立所述数据库表所使用的数据库管理系统的语法,通过StringBuffer类中的Append方法将多个所述分脚本进行拼接以得到建立所述数据库表的初始脚本;
[0124] 采用ToString方法将所述初始脚本进行字符串格式化以生成建立所述数据库表的脚本。
[0125] 在一实施例中,所述处理器302在实现所述通过预设方式解析所述Excel文件以得到所述表数据的步骤时,具体实现以下步骤:
[0126] 通过JAVA中POI包或者Jxl.jar获取所述Excel文件中包含的所述表数据。
[0127] 在一实施例中,所述处理器302在实现所述根据建立所述数据库表所使用的数据库管理系统的语法,通过第二预设方法将多个所述分脚本进行拼接以生成建立所述数据库表的脚本的步骤之后,还实现以下步骤:
[0128] 使用IO流把建立所述数据库表的脚本进行封装。
[0129] 应当理解,在本申请实施例中,处理器302可以是中央处理单元(Central ProcessingUnit,CPU),该处理器302还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0130] 本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
[0131] 因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:
[0132] 一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的建表脚本的生成方法的步骤。
[0133] 所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
[0134] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0135] 所述计算机可读存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
[0136] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0137] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0138] 本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
[0139] 该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
[0140] 以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈