实体类生成方法、装置及存储介质与流程

文档序号:26049968发布日期:2021-07-27 15:24阅读:67来源:国知局
实体类生成方法、装置及存储介质与流程
本公开涉及计算机
技术领域
,具体涉及一种实体类生成方法、装置及存储介质。
背景技术
:实体类的主要目的是存储数据并提供对这些数据的访问。通常情况下每个配置表都需要对应一个实体类。现有的配置表通常需要手动编写,且每个配置表均需要编写,另外,同一张配置表中会存在大量的字段,并且各字段的数据类型也不相同,很容易产生错误。技术实现要素:本公开意图提供一种实体类生成方法、装置及存储介质,能够解决现有技术中配置表需要手动编写,费时费力,且配置表中存在大量的字段容易产生错误的技术问题。根据本公开的方案之一,提供一种实体类生成方法,包括:在执行文脚本件时,分别获取第一数据文件和第二数据文件的配置信息,其中,所述第一数据文件和所述第二数据文件的文件类型不同;将所述第一数据文件的配置信息与所述第二数据文件的配置信息进行比较,提取满足预设条件的配置信息;基于所述满足预设条件的配置信息,生成所述第一数据文件和第二数据文件对应的实体类。在一些实施例中,所述第一数据文件为json文件,所述第二数据文件为excel文件。在一些实施例中,将所述第一数据文件的配置信息与所述第二数据文件的配置信息进行比较,提取满足预设条件的配置信息,包括:将所述第一数据文件的字段名称与所述第二数据文件的字段名称进行比较,提取所述第一数据文件和所述第二数据文件中相同的字段。在一些实施例中,基于所述满足预设条件的配置信息,生成所述第一数据文件和第二数据文件对应的实体类,包括:基于提取的所述字段,构建实体类和字段之间的映射关系;基于所述映射关系生成对应的所述实体类。在一些实施例中,所述方法还包括:根据生成的所述实体类生成访问对象。在一些实施例中,根据生成的所述实体类生成访问对象之后,所述方法还包括:基于所述实体类中的属性信息,对所述访问对象中对应的属性进行赋值,得到所述访问对象的属性值;提取所述访问对象中相关的属性值,根据所述属性值执行相关操作。根据本公开的方案之一,还提供一种实体类生成装置,包括:获取模块,配置为在执行文脚本件时,分别获取第一数据文件和第二数据文件的配置信息,其中,所述第一数据文件和所述第二数据文件的文件类型不同;提取模块,配置为将所述第一数据文件的配置信息与所述第二数据文件的配置信息进行比较,提取满足预设条件的配置信息;生成模块,配置为基于所述满足预设条件的配置信息,生成所述第一数据文件和第二数据文件对应的实体类。在一些实施例中,所述提取模块具体配置为:将所述第一数据文件的字段名称与所述第二数据文件的字段名称进行比较,提取所述第一数据文件和所述第二数据文件中相同的字段。在一些实施例中,所述生成模块具体配置为:基于提取的所述字段,构建实体类和字段之间的映射关系;基于所述映射关系生成对应的所述实体类。根据本公开的方案之一,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令由处理器执行时,实现上述的实体类生成方法。本公开的各种实施例的实体类生成方法、装置及存储介质,通过获取第一数据文件和第二数据文件的配置信息,并提取其中满足预设条件的配置信息,基于该满足预设条件的配置信息,自动生成实体类,能够简化手工开发代码的流程,提高开发效率,降低后端开发的繁琐程度;同时,能够减少冗余字段,提高实体类的生成效率,减少实体类中的错误。应当理解,前面的大体描述以及后续的详细描述只是示例性的和说明性的,并非对所要求保护的本公开的限制。附图说明在未必按照比例绘制的附图中,不同视图中相似的附图标记可以表示相似的构件。具有字母后缀的相似附图标记或具有不同字母后缀的相似附图标记可以表示相似构件的不同实例。附图通常作为示例而非限制地图示各种实施例,并且与说明书和权利要求书一起用于解释所公开的实施例。图1示出了本公开实施例的实体类生成方法的流程示意图;图2示出了本公开的一种实施例的实体类生成装置的架构示意图。具体实施方式为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。作为方案之一,如图1所示,本公开的实施例提供了一种实体类生成方法,包括:s101:在执行文脚本件时,分别获取第一数据文件和第二数据文件的配置信息,其中,所述第一数据文件和所述第二数据文件的文件类型不同。具体地,服务器在执行脚本文件时可以获取第一数据文件和第二数据文件,本实施例中,第一数据文件为json文件,第二数据文件为excel文件。第一数据文件为json格式文件,存储的数据为轻量级,易于阅读和编写,同时也易于机器解析和生成,能够有效提升传输效率。所述配置信息包括:表名、字段名称、字段类型、字段长度、字段是否为null以及字段注释等。在一些实施例中,在执行脚本文件之前,所述方法还包括:使用脚本语言搭建脚本执行环境。所述脚本语言包括nodejs、python、php等语言,本实施例中,使用nodejs语言开发,开发环境搭建方便。s102:将所述第一数据文件的配置信息与所述第二数据文件的配置信息进行比较,提取满足预设条件的配置信息。本公开实施例中,s102具体包括:将所述第一数据文件的字段名称与所述第二数据文件的字段名称进行比较,提取所述第一数据文件和所述第二数据文件中相同的字段。在一具体实施例中,第一数据文件为a.json,第二数据文件为a.xls。a.json中的内容为{“a”:1,“b”:2,“c”:3},其中,“a”、“b”、“c”分别表示字段名称;1、2、3分别为与所述字段名称相对应的字段的值。a.xls中的内容如表1所示,其中,a.xls中的第一行为表头,表示字段名称。第二行表示字段的字段类型,第三行表示不同字段拥有的字段的值。表1abcdintintintint1234将a.json文件的数据与a.xls文件的数据进行比较后,提取其中相同的字段名称及其对应的字段信息(例如,字段类型、字段的值等),即提取“a”、“b”、“c”及“1”、“2”、“3”。在a.json文件未对字段类型进行限制时,由于a.xls对字段类型进行了限制,因此,可以将提取的字段类型确定为“int”。本实施例中,在提取字段信息时,对于相同的字段,尽可能提取全面的字段信息,以保证实体类生成的准确性。在另一些实施例中,满足预设条件的配置信息可以为第一数据文件的配置信息和第二数据文件的配置信息中具有一定特定关联关系的配置信息,如此,可以从第一数据文件和第二数据文件中提取出满足预设条件的特定的配置信息。s103:基于所述满足预设条件的配置信息,生成所述第一数据文件和第二数据文件对应的实体类。步骤s103具体包括如下步骤:s1031:基于提取的所述字段,构建实体类和字段之间的映射关系;s1032:基于所述映射关系生成对应的所述实体类。在提取出第一数据文件和第二数据文件中的相同字段后,基于提取出的字段确定待生成的实体类型以及实体类型对应的属性信息,从而构建实体类和字段之间的映射关系,从而生成满足上述映射关系的实体类。生成的实体类包括属性和方法,其中,属性对应数据文件中的字段。方法主要有getter和setter方法,getter表示取值,setter表示赋值。生成的类属性可以包括list等类型。例如,可以基于提取出的字段名称确定实体类中的属性名称。本实施例中,生成的实体类(entity)包括但不限于java类,java类的文件类型为.java。在构建实体类和字段之间的映射关系时还包括:确定生成实体类的位置。例如,可以基于json文件路径和/或excel文件路径,确定实体类存放路径(生成java文件的路径)。利用上述a.json和a.xls文件生成实体类的结果如下:其中,@getter用于取值,@tostring用于注释。如上所述,生成的实体类中,只生成两个文件中都包含的字段,可以有效减少实体类中的字段数量,在将数据文件读取到内存时,减少文件内存的占用空间,提高访问效率。生成的实体类中,属性的类型通常为private。本公开实施例提供的实体类生成方法,通过获取第一数据文件和第二数据文件的配置信息,并提取其中满足预设条件的配置信息,基于该满足预设条件的配置信息,自动生成实体类,能够简化手工开发代码的流程,提高开发效率,降低后端开发的繁琐程度;同时,能够减少冗余字段,提高实体类的生成效率,减少实体类中的错误。另外,本实施例中生成的实体类仅仅映射数据,可以有效提高实体类生成的准确性。生成实体类后还可以对其进行打包封装,确定包名(package)。不同的包名下可以存在相同的类名的,例如当有两个aentity.java文件时,只要其包名不相同即可区分为不同的实体类。在一些实施例中,在生成所述第一数据文件和第二数据文件对应的实体类后,所述方法还包括:s104:根据生成的所述实体类生成访问对象。访问对象即为实体类中包含的实体对象,本实施例中,通过java的反射机制,把实体类的属性信息转换为map集合存储(通过map做了一个映射),即对于任意一个类,都能够知道这个类的所有属性和方法。因此,可以根据java的反射机制遍历实体类,获取实体类的属性,进而根据实体类的属性生成访问对象,即将java类中的各种属性信息映射成一个个的java对象,并且可以进行操作。对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。访问对象的具体生成方式可以表示为:其中,@resource标签负责注入。在一些实施例中,根据生成的所述实体类生成访问对象之后,所述方法还包括:s1051:基于所述实体类中的属性信息,对所述访问对象中对应的属性进行赋值,得到所述访问对象的属性值;s1052:提取所述访问对象中相关的属性值,根据所述属性值执行相关操作。在一些实施例中,所述方法还包括:在后端服务器启动时,自动装载生成的所述实体类的配置文件。通过自动装载生成的实体类的配置文件,可以实现配置文件内容的自动装载,提高程序编写效率。作为方案之一,如图2所示,本公开的实施例提供了一种实体类生成装置,包括:获取模块201,配置为在执行文脚本件时,分别获取第一数据文件和第二数据文件的配置信息,其中,所述第一数据文件和所述第二数据文件的文件类型不同;提取模块202,配置为将所述第一数据文件的配置信息与所述第二数据文件的配置信息进行比较,提取满足预设条件的配置信息;生成模块203,配置为基于所述满足预设条件的配置信息,生成所述第一数据文件和第二数据文件对应的实体类。作为一种具体实施方案,本实施例的提取模块202,可以进一步配置为:将所述第一数据文件的字段名称与所述第二数据文件的字段名称进行比较,提取所述第一数据文件和所述第二数据文件中相同的字段。作为一种具体实施方案,本实施例的生成模块203,具体可以配置为:基于提取的所述字段,构建实体类和字段之间的映射关系;基于所述映射关系生成对应的所述实体类。作为一种具体实施方案,本实施例的生成模块203,还可以配置为:根据生成的所述实体类生成访问对象。作为一种具体实施方案,本实施例的实体类生成装置,还可以包括操作模块,配置为:将所述实体类中的字段赋值给所述访问对象中对应的属性;提取所述访问对象中相关的属性值,根据所述属性值执行相关操作。本公开实施例提供的实体类生成装置对应于上述实施例的实体类生成方法,实体类生成方法实施例中的任何可选项也适用于本实施例,这里不再详述。本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令由处理器执行时,主要实现上述的实体类生成方法,至少包括:在执行文脚本件时,分别获取第一数据文件和第二数据文件的配置信息,其中,所述第一数据文件和所述第二数据文件的文件类型不同;将所述第一数据文件的配置信息与所述第二数据文件的配置信息进行比较,提取满足预设条件的配置信息;基于所述满足预设条件的配置信息,生成所述第一数据文件和第二数据文件对应的实体类。在一些实施例中,执行算机可执行指令的处理器可以是包括一个以上通用处理设备的处理设备,诸如微处理器、中央处理单元(cpu)、图形处理单元(gpu)等。更具体地,该处理器可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、运行其他指令集的处理器或运行指令集的组合的处理器。该处理器还可以是一个以上专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、片上系统(soc)等。上述的计算机可读存储介质可以为存储器,诸如只读存储器(rom)、随机存取存储器(ram)、相变随机存取存储器(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、电可擦除可编程只读存储器(eeprom)、其他类型的随机存取存储器(ram)、闪存盘或其他形式的闪存、缓存、寄存器、静态存储器、光盘只读存储器(cd-rom)、数字通用光盘(dvd)或其他光学存储器、盒式磁带或其他磁存储设备,或被用于储存能够被计算机设备访问的信息或指令的任何其他可能的非暂时性的介质等。本公开的实施例的计算机可执行指令可以组织成一个或多个计算机可执行组件或模块。可以用这类组件或模块的任何数量和组合来实现本公开的各方面。例如,本公开的各方面不限于附图中示出的和本文描述的特定的计算机可执行指令或特定组件或模块。其他实施例可以包括具有比本文所示出和描述的更多或更少功能的不同的计算机可执行指令或组件。以上实施例仅为本公开的示例性实施例,不用于限制本公开,本公开的保护范围由权利要求书限定。本领域技术人员可以在本公开的实质和保护范围内,对本公开做出各种修改或等同替换,这种修改或等同替换也应视为落在本公开的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1