CN111782608B - 文件自动生成方法、装置、电子设备及存储介质 - Google Patents
文件自动生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111782608B CN111782608B CN202010714312.4A CN202010714312A CN111782608B CN 111782608 B CN111782608 B CN 111782608B CN 202010714312 A CN202010714312 A CN 202010714312A CN 111782608 B CN111782608 B CN 111782608B
- Authority
- CN
- China
- Prior art keywords
- file
- model
- target
- data
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013461 design Methods 0.000 claims abstract description 76
- 238000006243 chemical reaction Methods 0.000 claims abstract description 66
- 238000010276 construction Methods 0.000 claims abstract description 28
- 238000011161 development Methods 0.000 claims description 31
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 claims description 9
- 238000013075 data extraction Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 7
- 239000000284 extract Substances 0.000 abstract description 5
- 238000012827 research and development Methods 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000000605 extraction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文件自动生成方法、装置、电子设备及存储介质,应用于研发管理领域,其中,该方法在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。采用本申请实施例有利于提高建立数据表的效率。此外,本申请还涉及区块链技术,建立的数据表可存储于区块链节点中。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件自动生成方法、装置、电子设备及存储介质。
背景技术
BI(Business Intelligence,商业智能)技术提供使企业迅速分析数据的技术和方法,将数据转化为有用的信息,生成BI报表以帮助企业经营决策。在日常BI报表开发中,一个报表可能会涉及多个数据表,而数据表的字段通常也很多,手动建表十分耗时,另外,在数据落地前,需要生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件、建表Sql文件等。现有的处理方式是在数据库建好数据表,利用逆向工程工具生成对应的文件,但是逆向工程工具只是解决了自动生成Model文件和Repository文件,建表Sql文件、Dataframe与Model之间的转换文件仍然需要手动编写,使得建立数据表的效率较低。
发明内容
针对上述问题,本申请提供了一种文件自动生成方法、装置、电子设备及存储介质,可自动生成建立数据表所需的文件,有利于提高建立数据表的效率。
为实现上述目的,本申请实施例第一方面提供了种文件自动生成方法,该方法包括:
在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
结合第一方面,在一种可能的实施方式中,所述根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件,包括:
基于所述目标文本文件中所述设计表格数据之间的tab间隔,采用Scala插值器进行插值,得到目标字符串,并对所述目标字符串进行保存;
根据所述目标字符串、所述配置文件中已配置的信息以及所述预设模板文件中固定的字符串生成所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件。
结合第一方面,在一种可能的实施方式中,在生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件之后,所述方法还包括:
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的第一目标文件,使用所述第一目标文件对所述原始文件进行替换;
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的第二目标文件,将所述第二目标文件作为新建文件存储在代码路径中。
结合第一方面,在一种可能的实施方式中,所述提取所述目标文档中数据表的设计表格数据,包括:
对所述目标文档进行解析,采用关键词技术定位出表格Table类型的文档元素,以提取出所述设计表格数据。
结合第一方面,在一种可能的实施方式中,在获取目标文档,提取所述目标文档中数据表的设计表格数据之前,所述方法还包括:
将代码自动生成工具集成到BI报表开发项目中,对待配置信息和代码路径进行配置,得到所述配置文件;所述待配置信息包括所述代码自动生成工具各功能模块的模块名称、数据表是否分区表、数据表的索引字段以及数据表的主键字段。
本申请实施例第二方面提供了一种文件自动生成装置,该装置包括:
数据提取模块,用于在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
数据添加模块,用于将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
文件生成模块,用于根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
数据表建立模块,用于在数据库引擎上执行所述建表Sql文件,实现数据表的建立。
本申请实施例第三方面提供了一种电子设备,该电子设备包括输入设备和输出设备,还包括处理器,适于实现一条或多条指令;以及,计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
本申请实施例第四方面提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如下步骤:
在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
本申请的上述方案至少包括以下有益效果:与现有技术相比,本申请实施例在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。这样在BI报表开发中可自动生成建立数据表所需的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件,从而有利于提高建立数据表的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网络系统架构的示意图;
图2为本申请实施例提供的一种服务端架构的示意图;
图3为本申请实施例提供的一种文件自动生成方法的流程示意图;
图4为本申请实施例提供的一种代码自动生成工具各功能模块的示意图;
图5为本申请实施例提供的另一种文件自动生成方法的流程示意图;
图6为本申请实施例提供的一种文件自动生成装置的结构示意图;
图7为本申请实施例提供的另一种文件自动生成装置的结构示意图;
图8为本申请实施例提供的另一种文件自动生成装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。
为了更好地理解本申请实施例,下面对本申请实施例提供的文件自动生成方法的网络系统架构进行简要介绍,请参见图1,图1为本申请实施例提供的一种网络系统架构的示意图,如图1所示,该网络系统架构涉及到客户端、服务端,客户端和服务端通过网络连接通信,用户在BI报表开发项目中通过服务端暴露给客户端的请求处理接口向服务端提交代码自动生成请求,该代码自动生成请求中可以包括开发设计文档,或者可以包括开发设计文档的存储路径。请求处理接口将代码自动生成请求提交给服务端,如图2所示,服务端采用三层架构模式,除了请求处理接口外,在业务逻辑层还实现开发设计文档获取接口、代码自动生成工具调用接口,开发设计文档获取接口用于解析代码自动生成请求,以直接获取到开发设计文档,或者与数据层建立连接,根据代码自动生成请求中开发设计文档的存储路径从数据库获取开发设计文档。代码自动生成工具调用接口用于调用集成在BI报表开发项目中的代码自动生成工具,以代码自动生成工具的各功能模块实现建立数据表所需的多个文件的自动生成,另外,建立的数据表还可存储于区块链节点中。当然,服务端业务逻辑层还可包括开发设计文档处理接口、模板文件获取接口等更多组件,图2仅仅为一种示例。
基于图1所示的网络系统架构,以下结合其他附图对本申请实施例提供的文件自动生成方法文件自动生成方法进行详细阐述。
请参加图3,图3为本申请实施例提供的一种文件自动生成方法的流程示意图,该文件自动生成方法应用于服务端,如图3所示,包括步骤S31-S34:
S31,在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据。
其中,本申请具体实施例中,代码自动生成请求用于请求服务端自动生成建立数据表所需的文件,目标文档即开发设计文档,开发人员在进行BI报表开发前通常会编写docx格式的开发设计文档,该开发设计文档中包含有落地关系型数据表的设计表格,设计表格的每一行包含有设计表格数据,即数据表的字段名(例如:Names)、字段类型(例如:Types)、字段注释(例如:Comments)等信息。当然,在一些实施例中,目标文档还可以是仅包含设计表格的文档,在此不作限定。
在一种可能的实施方式中,所述提取所述目标文档中数据表的设计表格数据,包括:
对所述目标文档进行解析,采用关键词技术定位出表格Table类型的文档元素,以提取出所述设计表格数据。
该实施方式中,表格Table类型的文档元素即包括了字段名、字段类型、字段注释等设计表格数据。服务端可通过请求处理接口获取客户端提交的代码自动生成请求,通过开发设计文档获取接口解析代码自动生成请求,以得到目标文档,通过开发设计文档处理接口提取出目标文档中的设计表格数据,开发设计文档处理接口具体可采用关键词技术进行字段名、字段类型、字段注释等的定位和提取。
S32,将所述设计表格数据添加到新建的文本文件中,得到目标文本文件。
其中,本申请具体实施例中,新建文本文件可以与提取设计表格数据同步进行,也可以异步进行,即可以在提取设计表格数据之前新建文本文件,也可以在提取设计表格数据之后新建文本文件。可以理解的,目标文本文件即存储有设计表格数据的文本文件,设计表格中每一行设计表格数据复制到文本文件后,字段之间会产生tab间隔。
S33,根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件。
其中,在一种可能的实施方式中,在获取目标文档,提取所述目标文档中数据表的设计表格数据之前,所述方法还包括:将代码自动生成工具集成到BI报表开发项目中,对待配置信息和代码路径进行配置,得到所述配置文件,该代码自动生成工具结合Spark框架、Scala插值器和Slick框架,如图4所示,所述待配置信息包括所述代码自动生成工具各功能模块的模块名称(例如:Coverter、Model、Repository、SqlGen、Utils、Conf等)、数据表是否分区表、数据表的索引字段、数据表的主键字段等,其中,Coverter模块即Dataframe与Model之间的转换、Model模块即数据表模型、Repository模块即数据表操作方法、SqlGen模块即Sql语句(包括建表语句、字段注释、分区语句、索引语句)、Utils模块即常量和文件操作、Conf即应用配置。
由于设计表格数据复制到文本文件中会产生tab间隔,针对步骤S32中目标文本文件里的tab间隔,采用Scala插值器进行插值,就能得到我们想要的目标字符串,众所周知,Scala插值主要包括s字符串插值器、f字符串插值器和raw插值器,例如:val name="Tom",使用s字符串插值器可得到目标字符串s"His name is$name",f字符串插值器可用于指定目标字符串的格式,若没有指定目标字符串的输出格式,其与s字符串插值器的作用相同,而raw插值器可以让字符串原原本本的输出来,而不是产生控制效果,具体使用哪一种插值器,可自定义。另外,代码自动生成工具集成到BI报表开发项目中会产生配置文件,配置文件中通常包括一些已配置的信息,例如:上述的各功能模块的模块名称、数据表是否分区表等,同时,项目中还存在预设的模板文件,模板文件中通常存在大量的固定字符串,也就是生成各文件时不用进行变更的字符串,结合插值器产生的目标字符串、配置文件中已配置的信息、模板文件中固定的字符串运行项目主程序,便自动生成Model文件、Repository文件、Dataframe与Model之间的转换文件以及建表Sql文件。
S34,在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
其中,本申请具体实施例中,数据库引擎可以是现有的任何数据库引擎,例如:MySQL的ISAM引擎、MYISAM引擎和HEAP引擎等。生成的Model文件、Repository文件、Dataframe与Model之间的转换文件、建表Sql文件集成于BI报表开发项目的主程序中,执行BI报表开发项目的主程序便实现Model文件、Repository文件、Dataframe与Model之间的转换文件、建表Sql文件的运行,从而自动建立BI报表开发项目相关的数据表。
可以看出,本申请实施例在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。这样在BI报表开发中可自动生成建立数据表所需的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件,从而有利于提高建立数据表的效率。
请参见图5,图5为本申请实施例提供的另一种文件自动生成方法的流程示意图,如图5所示,包括步骤S51-S55:
S51,在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
S52,将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
S53,基于所述目标文本文件中所述设计表格数据之间的tab间隔,采用Scala插值器进行插值,得到目标字符串,并对所述目标字符串进行保存;
S54,根据所述目标字符串、所述配置文件中已配置的信息以及所述预设模板文件中固定的字符串生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
S55,在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
其中,上述步骤S51-S55的具体实施方式在图3所示的实施例中已有相关说明,为避免重复,此处不再赘述。
在一种可能的实施方式中,在生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件之后,所述方法还包括:
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的第一目标文件,使用所述第一目标文件对所述原始文件进行替换;
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的第二目标文件,将所述第二目标文件作为新建文件存储在代码路径中。
其中,本申请具体实施例中,第一目标文件即所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的文件,相反,第二目标文件即所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的文件。例如:Repository文件的代码路径中存在原始Repository文件,则该Repository文件为第一目标文件,使用该Repository文件对原始Repository文件进行替换;Model文件的代码路径中不存在原始Model文件,则直接将该Model文件作为新建的Model文件存储在代码路径中。
该实施方式中,利用生成的文件对代码路径中的相关文件自动进行替换或修改,避免了开发人员对Model文件、Repository文件等的手动修改,降低了出错的可能性。
请参见图6,图6为本申请实施例提供的一种文件自动生成装置的结构示意图,如图6所示,该装置包括:
数据提取模块61,用于在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
数据添加模块62,用于将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
文件生成模块63,用于根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
数据表建立模块64,用于在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
在一种可能的实施方式中,在根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件方面,所述文件生成模块63具体用于:
基于所述目标文本文件中所述设计表格数据之间的tab间隔,采用Scala插值器进行插值,得到目标字符串,并对所述目标字符串进行保存;
根据所述目标字符串、所述配置文件中已配置的信息以及所述预设模板文件中固定的字符串生成所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件。
在一种可能的实施方式中,如图7所示,所述装置还包括第一文件更新模块65、第二文件更新模块66;
所述第一文件更新模块65,用于对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的第一目标文件,使用所述第一目标文件对所述原始文件进行替换;
所述第二文件更新模块66,用于对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的第二目标文件,将所述第二目标文件作为新建文件存储在代码路径中。
在一种可能的实施方式中,在提取所述目标文档中数据表的设计表格数据方面,所述数据提取模块61具体用于:
对所述目标文档进行解析,采用关键词技术定位出表格Table类型的文档元素,以提取出所述设计表格数据。
在一种可能的实施方式中,如图8所示,所述装置还包括配置模块67,所述配置模块67,用于将代码自动生成工具集成到BI报表开发项目中,对待配置信息和代码路径进行配置,得到所述配置文件;所述待配置信息包括所述代码自动生成工具各功能模块的模块名称、数据表是否分区表、数据表的索引字段以及数据表的主键字段。
根据本申请的一个实施例,图6-图8所示的文件自动生成装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于文件自动生成装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3或图5中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6-图8中所示的文件自动生成装置设备,以及来实现本申请实施例的文件自动生成方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
基于上述方法实施例和装置实施例的描述,本申请实施例还提供一种电子设备。请参见图9,该电子设备至少包括处理器901、输入设备902、输出设备903以及计算机存储介质904。其中,电子设备内的处理器901、输入设备902、输出设备903以及计算机存储介质904可通过总线或其他方式连接。
计算机存储介质904可以存储在电子设备的存储器中,所述计算机存储介质904用于存储计算机程序,所述计算机程序包括程序指令,所述处理器901用于执行所述计算机存储介质904存储的程序指令。处理器901(或称CPU(Central Processing Unit,中央处理器))是电子设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例提供的电子设备的处理器901可以用于进行一系列文件生成处理:
在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
再一个实施例中,处理器901执行所述根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件,包括:
基于所述目标文本文件中所述设计表格数据之间的tab间隔,采用Scala插值器进行插值,得到目标字符串,并对所述目标字符串进行保存;
根据所述目标字符串、所述配置文件中已配置的信息以及所述预设模板文件中固定的字符串生成所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件。
再一个实施例中,在生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件之后,处理器901还用于:
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的第一目标文件,使用所述第一目标文件对所述原始文件进行替换;
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的第二目标文件,将所述第二目标文件作为新建文件存储在代码路径中。
再一个实施例中,处理器901执行所述提取所述目标文档中数据表的设计表格数据,包括:
对所述目标文档进行解析,采用关键词技术定位出表格Table类型的文档元素,以提取出所述设计表格数据。
再一个实施例中,在获取目标文档,提取所述目标文档中数据表的设计表格数据之前,处理器901还用于:
将代码自动生成工具集成到BI报表开发项目中,对待配置信息和代码路径进行配置,得到所述配置文件;所述待配置信息包括所述代码自动生成工具各功能模块的模块名称、数据表是否分区表、数据表的索引字段以及数据表的主键字段。
示例性的,上述电子设备可以是服务器、计算机主机、服务器集群等,电子设备可包括但不仅限于处理器901、输入设备902、输出设备903以及计算机存储介质904。本领域技术人员可以理解,所述示意图仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
需要说明的是,由于电子设备的处理器901执行计算机程序时实现上述的文件自动生成方法中的步骤,因此上述文件自动生成方法的实施例均适用于该电子设备,且均能达到相同或相似的有益效果。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是电子设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器901加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器901的计算机存储介质。在一个实施例中,可由处理器901加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关文件自动生成方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器901加载并执行如下步骤:
在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
基于所述目标文本文件中所述设计表格数据之间的tab间隔,采用Scala插值器进行插值,得到目标字符串,并对所述目标字符串进行保存;
根据所述目标字符串、所述配置文件中已配置的信息以及所述预设模板文件中固定的字符串生成所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的第一目标文件,使用所述第一目标文件对所述原始文件进行替换;
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的第二目标文件,将所述第二目标文件作为新建文件存储在代码路径中。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
对所述目标文档进行解析,采用关键词技术定位出表格Table类型的文档元素,以提取出所述设计表格数据。
在一种示例中,计算机存储介质中的一条或多条指令由处理器901加载时还执行如下步骤:
将代码自动生成工具集成到BI报表开发项目中,对待配置信息和代码路径进行配置,得到所述配置文件;所述待配置信息包括所述代码自动生成工具各功能模块的模块名称、数据表是否分区表、数据表的索引字段以及数据表的主键字段。
示例性的,计算机存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,由于计算机存储介质的计算机程序被处理器执行时实现上述的文件自动生成方法中的步骤,因此上述文件自动生成方法的所有实施例均适用于该计算机存储介质,且均能达到相同或相似的有益效果。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种文件自动生成方法,其特征在于,所述方法包括:
将代码自动生成工具集成到BI报表开发项目中,对待配置信息和代码路径进行配置,得到配置文件;所述待配置信息包括所述代码自动生成工具各功能模块的模块名称、数据表是否分区表、数据表的索引字段以及数据表的主键字段;
在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
根据所述目标文本文件、所述配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立;
所述根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件,包括:
基于所述目标文本文件中所述设计表格数据之间的tab间隔,采用Scala插值器进行插值,得到目标字符串,并对所述目标字符串进行保存;
根据所述目标字符串、所述配置文件中已配置的信息以及所述预设模板文件中固定的字符串生成所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件。
2.根据权利要求1所述的方法,其特征在于,在生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件之后,所述方法还包括:
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的第一目标文件,使用所述第一目标文件对所述原始文件进行替换;
对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的第二目标文件,将所述第二目标文件作为新建文件存储在代码路径中。
3.根据权利要求1或2所述的方法,其特征在于,所述提取所述目标文档中数据表的设计表格数据,包括:
对所述目标文档进行解析,采用关键词技术定位出表格Table类型的文档元素,以提取出所述设计表格数据。
4.一种文件自动生成装置,其特征在于,所述装置包括:
配置模块,用于将代码自动生成工具集成到BI报表开发项目中,对待配置信息和代码路径进行配置,得到配置文件;所述待配置信息包括所述代码自动生成工具各功能模块的模块名称、数据表是否分区表、数据表的索引字段以及数据表的主键字段;
数据提取模块,用于在接收到代码自动生成请求的情况下,获取目标文档,提取所述目标文档中数据表的设计表格数据;
数据添加模块,用于将所述设计表格数据添加到新建的文本文件中,得到目标文本文件;
文件生成模块,用于根据所述目标文本文件、所述配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件;
数据表建立模块,用于在数据库引擎上执行所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件,实现数据表的建立;
在根据所述目标文本文件、配置文件以及预设模板文件生成数据表的Model文件、Repository文件、Dataframe与Model之间的转换文件以及发版时的建表Sql文件方面,所述文件生成模块具体用于:
基于所述目标文本文件中所述设计表格数据之间的tab间隔,采用Scala插值器进行插值,得到目标字符串,并对所述目标字符串进行保存;
根据所述目标字符串、所述配置文件中已配置的信息以及所述预设模板文件中固定的字符串生成所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括第一文件更新模块、第二文件更新模块;
所述第一文件更新模块,用于对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径存在原始文件的第一目标文件,使用所述第一目标文件对所述原始文件进行替换;
所述第二文件更新模块,用于对于所述Model文件、所述Repository文件、所述Dataframe与Model之间的转换文件以及所述建表Sql文件中代码路径不存在原始文件的第二目标文件,将所述第二目标文件作为新建文件存储在代码路径中。
6.一种电子设备,包括输入设备和输出设备,其特征在于,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-3任一项所述的方法。
7.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010714312.4A CN111782608B (zh) | 2020-07-21 | 2020-07-21 | 文件自动生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010714312.4A CN111782608B (zh) | 2020-07-21 | 2020-07-21 | 文件自动生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782608A CN111782608A (zh) | 2020-10-16 |
CN111782608B true CN111782608B (zh) | 2024-04-16 |
Family
ID=72763214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010714312.4A Active CN111782608B (zh) | 2020-07-21 | 2020-07-21 | 文件自动生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782608B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343662A (zh) * | 2021-06-28 | 2021-09-03 | 平安信托有限责任公司 | 数据落地方法、装置、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598612A (zh) * | 2016-12-20 | 2017-04-26 | 北京润科通用技术有限公司 | 一种数据库中数据表的操作方法及系统 |
CN109684326A (zh) * | 2018-11-13 | 2019-04-26 | 平安科技(深圳)有限公司 | 数据表创建方法、装置、设备及计算机可读存储介质 |
CN110909003A (zh) * | 2019-11-25 | 2020-03-24 | 车智互联(北京)科技有限公司 | 一种创建数据表的方法及计算设备 |
CN110955410A (zh) * | 2019-10-23 | 2020-04-03 | 山东中创软件工程股份有限公司 | 一种代码自动生成方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390124B2 (en) * | 2013-03-15 | 2016-07-12 | Microsoft Technology Licensing, Llc. | Version control system using commit manifest database tables |
-
2020
- 2020-07-21 CN CN202010714312.4A patent/CN111782608B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598612A (zh) * | 2016-12-20 | 2017-04-26 | 北京润科通用技术有限公司 | 一种数据库中数据表的操作方法及系统 |
CN109684326A (zh) * | 2018-11-13 | 2019-04-26 | 平安科技(深圳)有限公司 | 数据表创建方法、装置、设备及计算机可读存储介质 |
CN110955410A (zh) * | 2019-10-23 | 2020-04-03 | 山东中创软件工程股份有限公司 | 一种代码自动生成方法、装置、设备及介质 |
CN110909003A (zh) * | 2019-11-25 | 2020-03-24 | 车智互联(北京)科技有限公司 | 一种创建数据表的方法及计算设备 |
Non-Patent Citations (1)
Title |
---|
数据库结构自动生成工具的开发;刘杰;;计算机时代;20070125(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111782608A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
CN102663103B (zh) | 可配置的自动化生成数据库和数据访问的方法 | |
CN103294475B (zh) | 基于图形化业务场景和领域模板的业务自动生成系统和方法 | |
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
CN108280023B (zh) | 任务执行方法、装置和服务器 | |
CN108984155B (zh) | 数据处理流程设定方法和装置 | |
CN110389832A (zh) | ZooKeeper容器集群部署方法、系统、设备及存储介质 | |
CN107329765B (zh) | 程序文件处理方法及装置 | |
CN103309904A (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN107103035B (zh) | 本地表数据更新方法及装置 | |
CN116226112A (zh) | 数据清洗方法、装置、存储介质及电子设备 | |
CN111782608B (zh) | 文件自动生成方法、装置、电子设备及存储介质 | |
CN115358204A (zh) | 一种报表生成方法、装置、电子设备及存储介质 | |
US20230161945A1 (en) | Automatic two-way generation and synchronization of notebook and pipeline | |
US20210124752A1 (en) | System for Data Collection, Aggregation, Storage, Verification and Analytics with User Interface | |
CN114089889A (zh) | 模型训练方法、装置以及存储介质 | |
CN111984826A (zh) | 基于xml的数据自动入库方法、系统、装置和存储介质 | |
CN117078181A (zh) | 一种电力交易业务数据处理流程自动化方法与系统 | |
CN101329625A (zh) | 专家系统开发平台 | |
CN115794078A (zh) | 无代码ai模型开发系统和方法 | |
CN111143310B (zh) | 日志记录方法及装置、可读存储介质 | |
CN113805850A (zh) | 基于多种深度学习和机器学习框架的人工智能管理系统 | |
CN112486460A (zh) | 自动导入接口文档的方法、系统、设备和介质 | |
CN112836033A (zh) | 业务模型的管理方法、装置、设备及存储介质 | |
CN112051987B (zh) | 业务数据处理方法、装置及设备、程序生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |