一种数据处理方法、装置、电子设备及存储介质与流程

文档序号:25095270发布日期:2021-05-18 21:35阅读:67来源:国知局
1.本申请涉及计算机
技术领域
:,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
::2.springboot是由pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。java持久化api(javapersistenceapi,jpa)是基于简单无规则java对象(plainordinaryjavaobject,pojo)的持久化机制。3.在springboot中采用jpa持久化框架,实际上就是springdatajpa。springdatajpa是spring基于对象关系映射(objectrelationalmapping,orm)框架、jpa规范的基础上封装的一套jpa应用框架,可使开发者使用极简代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展。使用springdatajpa,解脱了开发人员对数据存取对象(dataaccessobjects,dao)层的编写,基本所有的curd(代表创建(create)、更新(update)、读取(retrieve)和删除(delete))都可以依赖它来实现。4.但是随着业务的不断壮大,使用到的底层元数据表也日益繁多,开发人员在编写过程中,对于不同的数据库配置需要重复编写格式相对固定的数据库持久化代码,并且在数据库变换时,需要逐一去修改代码,并且在编写和修改过程中容易出现各种错误,大大浪费开发人员时间,影响开发效率。技术实现要素:5.为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种数据处理方法、装置、电子设备及存储介质。6.根据本申请实施例的一个方面,提供了一种数据处理方法,包括:7.获取元数据表中的元数据结构信息,所述元数据表在数据库被创建后生成;8.根据所述元数据结构信息生成数据实体文件;9.根据所述数据实体文件及预设的公共数据包生成数据实体对应的操作层文件;10.根据所述数据实体文件及所述操作层文件得到所述数据库对应的数据库操作代码;11.采用所述数据库操作代码对所述数据库中的数据进行持久化操作。12.可选的,获取元数据表对应的元数据结构信息,包括:13.基于输入的数据库参数及数据表名,从所述数据库参数对应的信息数据库中读取所述数据表名对应的元数据表;14.从所述元数据表中提取所述元数据结构信息,其中,所述元数据结构信息包括:数据表名、字段名及字段类型。15.可选的,所述根据所述元数据结构信息生成数据实体文件,包括:16.获取所述数据实体对应的存储路径信息;17.根据所述存储路径信息及数据实体的实体类名,拼接得到所述数据实体所在数据包的第一包路径信息;18.生成所述数据实体对应类库进行引用的第一引用语句;19.配置所述数据实体对应的持久化注解信息;20.设置所述数据实体对应的访问权限,并生成所述数据实体对应的类格式语句;21.根据所述第一包路径信息、第一引用语句、持久化注解信息、访问权限及类格式语句,得到所述数据实体文件。22.可选的,操作层文件包括:访问层文件、服务层文件、服务实现层文件和控制层文件;所述公共数据包包括:访问层公共包、服务层公共包、服务实现层公共包和控制层公共包;23.所述根据所述数据实体文件及预设的公共数据包生成数据实体对应的操作层文件,包括:24.根据所述数据实体文件及所述访问层公共包,生成所述访问层文件;25.根据所述数据实体文件及所述服务层公共包,生成所述服务层文件;26.基于所述访问层文件、所述服务层文件及所述服务实现层公共包,生成所述服务实现层文件;27.根据所述服务层文件及所述控制层公共包,生成所述控制层文件。28.可选的,所述根据所述数据实体文件及所述访问层公共包,生成所述访问层文件,包括:29.根据所述存储路径信息及访问层对应的访问层类名,拼接得到所述访问层文件所在数据包的第二包路径信息;30.生成引用所述数据实体文件的第二引用语句;31.生成继承所述访问层公共包的第一继承语句;32.拼接所述第二包路径信息、所述第二引用语句及所述第一继承语句,得到所述访问层文件。33.可选的,所述根据所述数据实体文件及所述服务层公共包,生成所述服务层文件,包括:34.根据所述存储路径信息及服务层对应的服务层类名,拼接得到所述服务层文件所在数据包的第三包路径信息;35.生成引用所述数据实体文件的第三引用语句;36.生成继承所述服务层公共包的第二继承语句;37.拼接所述第三包路径信息、所述第三引用语句及所述第二继承语句,得到所述服务层文件。38.可选的,所述基于所述访问层文件、所述服务层文件及所述服务实现层公共包,生成所述服务实现层文件,包括:39.生成对所述访问层文件的第一依赖语句,以及继承所述服务实现层公共包的第三继承语句;40.基于所述服务层文件,以及对所述第一依赖语句及第三继承语句进行拼接,得到所述服务实现层文件。41.可选的,所述根据所述服务层文件及所述控制层公共包,生成所述控制层文件,包括:42.生成对所述服务层文件的第二依赖语句,以及继承所述控制层公共包的第四继承语句;43.拼接所述第二依赖语句及所述第四继承语句,得到所述控制层文件。44.根据本申请实施例的另一个方面,提供了一种数据处理装置,包括:45.获取模块,用于获取元数据表对应的元数据结构信息,所述元数据表在数据库安装后创建;46.实体生成模块,用于根据所述元数据结构信息生成数据实体文件;47.文件生成模块,用于根据所述数据实体文件及预设的公共数据包生成数据实体对应的操作层文件;48.代码生成模块,用于根据所述数据实体文件及所述操作层文件得到所述数据库对应的数据库操作代码;49.操作模块,用于采用所述数据库操作代码对所述数据库中的数据进行持久化操作。50.根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。51.根据本申请实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;52.所述存储器,用于存放计算机程序;53.所述处理器,用于执行计算机程序时,实现上述方法步骤。54.根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。55.本申请实施例提供的上述技术方案与现有技术相比具有如下优点:56.基于数据库管理系统在创建数据库后会自动生成的元数据表,以及预先抽取的公共数据包,就可以自动生成一套用于执行持久化操作的代码,开发人员仅需指定元数据表和公共数据包即可,无需针对不同数据库反复编写格式相对固定的数据库持久化操作代码,即便数据库发生变换,也无需逐一修改代码,通过数据库变换后重新创建的元数据表,即可重新生成变换后数据库所对应的数据库操作代码。这样,降低编写和修改过程中发生错误的概率,节约了大量的时间成本和人力成本,提高开发效率。附图说明57.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。58.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。59.图1为本申请实施例提供的一种数据处理方法的流程图;60.图2为本申请另一实施例提供的一种数据处理方法的流程图;61.图3为本申请另一实施例提供的一种数据处理方法的流程图;62.图4为本申请另一实施例提供的一种数据处理方法的流程图;63.图5为本申请另一实施例提供的一种数据处理方法的流程图;64.图6为本申请另一实施例提供的一种数据处理方法的流程图;65.图7为本申请另一实施例提供的一种数据处理方法的流程图;66.图8为本申请实施例生成数据库操作代码的流程图;67.图9为本申请另一实施例提供的一种数据处理装置的框图;68.图10为本申请实施例提供的各操作层文件与公共数据包之间的继承关系;69.图11为本申请实施例提供的一种电子设备的结构示意图。具体实施方式70.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。71.mysql数据库管理系统在创建数据库之后会自动生成同级别的一个管理元数据的信息数据库information_schema,该信息数据库中的元数据表columns记录了用户自定义元数据结构信息,其中,columns包含:table_schema(数据库名),table_name(数据表名),column_name(字段名),ordinal_position(字段顺序位置),is_nullable(是否允许空),data_type(字段类型)等信息。72.另外,为扩展jave语言的类型,引入jave泛型。泛型,即“参数化类型”。本实施例中,支持创建参数化类型,抽取公共层代码逻辑形成公共数据包,使得在公共数据包的封装中无需关注具体类型,而在运行时确定类型,从而实现对公共数据包的复用。73.本申请实施例,基于上述元数据表columns中的元数据结构信息以及预先抽取的公共数据包,可以自动生成一套基于jpa的curd代码。基于curd代码来执行对数据库中数据的持久化操作。74.下面首先对本发明实施例所提供的一种数据处理方法进行介绍。75.图1为本申请实施例提供的一种数据处理方法的流程图。如图1所示,该方法包括以下步骤:76.步骤s11,获取元数据表中的元数据结构信息,元数据表在数据库安装后创建。77.该步骤中,从信息数据库information_schema中读取的元数据表为information_schema.columns。78.步骤s12,根据元数据结构信息生成数据实体文件。79.其中,数据实体(entity),也即pojo,在程序中仅作为数据容器用来持久化存储数据库中的数据。该步骤中,通过元数据结构信息,可以生成数据库对应的数据实体文件,即数据实体代码。元数据结构信息中可能包括多个字段,该数据实体文件包括与每个字段一一对应的entity。80.步骤s13,根据数据实体文件及预设的公共数据包生成数据实体对应的操作层文件。81.其中,操作层文件包括:访问层文件、服务层文件、服务实现层文件和控制层文件。82.根据上述步骤生成的entity文件,以及预先抽取公共层代码逻辑形成公共数据包,可依次生成访问层(repository)文件、服务层(service)文件、服务实现层(serviceimpl)文件和控制层(controller)文件。83.由于entity、repositoryservice、serviceimpl及controller之间存在一定依赖关系,且通过继承公共数据包,即可自动生成repositoryservice、serviceimpl及controller的代码。84.步骤s14,根据数据实体文件及操作层文件得到数据库对应的数据库操作代码。85.通过上述将步骤s12和步骤s13中生成的代码进行组合,即得到最终用于进行数据库持久化操作的gurd代码。86.步骤s15,采用数据库操作代码对数据库中的数据进行持久化操作。87.其中,持久化(persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),例如,将内存中的对象存储在数据库中,或者存储在磁盘文件中、xml数据文件中等等。88.在步骤s15中,通过直接运行数据库操作代码,即可执行对该数据库中数据的持久化操作。89.通过上述步骤s11至步骤s15,基于数据库管理系统在创建数据库后会自动生成的元数据表,以及预先抽取的公共数据包,就可以自动生成一套用于执行持久化操作的代码。开发人员仅需指定元数据表和公共数据包即可,无需针对不同数据库反复编写格式相对固定的数据库持久化操作代码;即便数据库发生变换,也无需逐一修改代码,通过数据库变换后重新创建的元数据表,即可重新生成变换后数据库所对应的数据库操作代码。这样,降低编写和修改过程中发生错误的概率,节约了大量的时间成本和人力成本,提高开发效率。90.在可选实施例中,上述步骤s11包括:91.步骤a1,基于输入的数据库参数及数据表名,从数据库参数对应的信息数据库中读取数据表名对应的元数据表。92.其中,数据库参数包括连接数据库所需的参数,如数据库连接路径jdbcurl,数据库用户名username,数据库密码password,数据库驱动driverclassname,等。93.上述数据库参数和数据表名可以由用户根据所需输入,加载数据库驱动,基于数据库连接路径访问数据库,通过数据库用户名和数据库密码进入数据库。94.步骤a2,从元数据表中提取元数据结构信息,其中,元数据结构信息包括:数据表名、字段名及字段类型。95.其中,提取元数据结构信息,即读取数据表information_schema.columns中的如下字段:tablename(数据表名),column_name(字段名),data_type(字段类型),column_key(是否主键),等等,这些字段即为元数据结构信息。96.本实施例中,开发人员通过输入数据库参数来指定所要操作的数据库所对应的元数据表,后续即可根据该元数据表中的元数据结构信息及预先抽取的公共数据包自动生成数据库操作代码,节约了大量的时间成本和人力成本,提高开发效率。97.图2为本申请另一实施例提供的一种数据处理方法的流程图。如图2所示,上述步骤s12包括以下步骤:98.步骤s21,获取数据实体对应的存储路径信息;99.其中,该存储路径信息basepath为存放entity的基础路径信息。100.步骤s22,根据存储路径信息及数据实体的实体类名,拼接得到数据实体所在数据包的第一包路径信息;101.即,将存储路径信息与entity类名之间通过“.”连接,得到第一包路径信息,可以表示为:102.第一包路径信息=存储路径信息+.+entity类名。103.步骤s23,生成数据实体对应类库进行引用的第一引用语句;104.例如,需要引用的类库包括:lombok.dat,javax.persistence,java.io.serializable,java.util.date等。105.步骤s24,配置数据实体对应的持久化注解信息;106.其中,entity在jpa中的注解包括:@entity、@table和@data。107.@entity,表示对实体注释。108.@table,声明此对象映射到数据库的数据表,通过它可以为实体指定表(table),目录(catalog)和schema的名字。例如,使用@table(name=)为实体指定数据实体对应的数据库表的名字。109.@data,是lombok插件中的一个注解,lombok插件主要用于简化java代码。@data可以为类提供读写功能,从而可以省掉大量的get(),set()等方法,还会为类提供equals()、hashcode()、tostring()等方法。相当于@getter,@setter,@requiredargsconstructor,@equalsandhashcode,@tostring这些注释的集合。110.步骤s25,设置数据实体对应的访问权限,并生成数据实体对应的类格式语句;111.例如,访问权限可设置为以下几种情形:112.通过public声明,设置数据实体的访问权限为公有,即声明的所有数据均可以被访问;113.通过private声明,设置数据实体的访问权限为私有,即仅有该类中的数据可被访问;114.通过protect声明,设置数据实体的访问权限为保护,即该包路径下的数据可以被访问。115.可选的,若未设置访问权限,则访问权限可默认为“protect”。116.步骤s26,根据第一包路径信息、第一引用语句、持久化注解信息及访问权限及类格式语句,得到数据实体文件。117.具体地,数据实体文件各部分的代码示例如下:118.entity所在数据包的第一包路径信息的代码为:119."package"+package_.replaceall("\\\\",".")+"pojo;\n"+120.其中,package表示entity的存储路径信息,package_.replaceall("\\\\",".")表示将“\”替换为“.”,pojo为entity的类名。121.若entity引用类库lombok.dat,javax.persistence,java.io.serializable和java.util.date,则第一引用语句的代码为:122."importlombok.data;\n"+123."importjavax.persistence.*;\n"+124."importjava.io.serializable;\n"+125."importjava.util.date;\n"+126.entity对应的持久化注解信息的代码为:127."@entity\n"+128."@table(name=\""+tablename+"\")\n"+129."@data\n"+130.entity的访问权限及类格式语句为:131."publicclass"+stringutil.capturename(stringutil.camelcasename(tablename))+"implementsserializable132.其中,public用于声明entity的访问权限为公有,stringutil.camelcasename(tablename)表示对数据表名tablename采用驼峰式命名,stringutil.capturename()为用于捕获命名的方法,implementsserializable表示将类序列化。133.在步骤s26中,将第一包路径信息、第一引用语句、持久化注解信息及访问权限及类格式语句组合,得到数据实体文件。134.通过上述步骤s21至步骤s26,基于元数据结构信息,可以自动生成数据实体代码,无需开发人员重复编写格式相对固定的数据库的实体代码,节约了大量的时间成本和人力成本,提高开发效率。135.图10为本申请实施例提供的各操作层文件与公共数据包之间的继承关系。如图10所示,本申请实施例中,数据库xxx对应的personalpackage各操作层文件xxxrepository、xxxservice、xxxserviceimpl及xxxcontroller,都有其对应的公共包。公共数据包commonpackage包括:访问层公共包commonrepository<e,t>、服务层公共包commonservice<v,e,t>、服务实现层公共包commonserviceimpl<v,e,t>和控制层公共包commoncontroller<v,e,t>。其中,服务实现层公共包commonserviceimpl<v,e,t>通过implements声明使用服务层公共包commonservice<v,e,t>。136.各公共包均基于java泛型实现,其中,在java泛型中,e表示element(在集合中使用,集合中存放的是元素),v表示value(值),t表示type(java类)。137.上述访问层公共包commonrepository<e,t>,继承jparepository和jpaspecificationexecutor接口。其中,jparepository接口是实现springdatajpa技术访问数据库的关键接口,继承自pagingandsortingrepository接口,基于jpa的repository接口,可以极大减少了jpa作为数据访问的代码。jpaspecificationexecutor接口是围绕specification接口定义的,针对criteriaapi进行了predicate标准封装,封装了通过entitymanager的查询和使用细节,使得操作criteria更加便利了一些。138.上述服务层公共包commonservice<v,e,t>,提供了数据增加、查询、删除、修改等基础方法。139.上述服务实现层公共包commonserviceimpl<v,e,t>中的service实现了commonservice<v,e,t>里定义的方法。140.上述控制层公共包commoncontroller<v,e,t>,定义并实现了基础方法对应的web接口。141.图3为本申请另一实施例提供的一种数据处理方法的流程图。如图3所示,上述步骤s13,对各操作层文件均增加其对应公共包的继承关系,再基于各操作层之间的依赖关系,即可得到各操作层文件,具体步骤如下:142.步骤s31,根据数据实体文件及访问层公共包,生成访问层文件;143.步骤s32,根据数据实体文件及服务层公共包,生成服务层文件;144.步骤s33,基于访问层文件、服务层文件及服务实现层公共包,生成服务实现层文件;145.步骤s34,根据服务层文件及控制层公共包,生成控制层文件。146.下面对生成各操作层文件的过程进行详细说明。147.图4为本申请另一实施例提供的一种数据处理方法的流程图。如图4所示,上述步骤s31,生成repository层文件的过程具体如下:148.步骤s41,根据存储路径信息及访问层对应的访问层类名,拼接得到访问层文件所在数据包的第二包路径信息;149.步骤s42,生成引用数据实体文件的第二引用语句;150.例如,可以通过import语句实现对数据实体文件的引用。151.步骤s43,生成继承访问层公共包的第一继承语句;152.例如,可以通过extends语句实现对访问层公共包的继承。153.步骤s44,拼接第二包路径信息、第二引用语句及第一继承语句,得到访问层文件。154.生成repository层代码如下:155.package存储路径信息+repository类名156.import存储路径信息+entity类名157.publicinterfacexxxrepositoryextendscommonrepository<e,t>,{158.}159.其中,上述代码中“xxx”可以为用户自定义的类名字符串,如myuser。160.图5为本申请另一实施例提供的一种数据处理方法的流程图。如图5所示,上述步骤s32,生成service层文件的过程具体如下:161.步骤s51,根据存储路径信息及服务层对应的服务层类名,拼接得到服务层文件所在数据包的第三包路径信息;162.步骤s52,生成引用数据实体文件的第三引用语句;163.步骤s53,生成继承服务层公共包的第二继承语句;164.步骤s54,拼接第三包路径信息、第三引用语句及第二继承语句,得到服务层文件。165.生成service层代码如下:166.package存储路径信息+service类名167.import存储路径信息+entity类名168.publicinterfacexxxserviceextendscommonservice<v,e,t>,{169.}170.其中,service层可以封装多种数据操作的方法,也可被设置为service接口层,封装各数据操作对应的接口。171.图6为本申请另一实施例提供的一种数据处理方法的流程图。如图6所示,上述步骤s33,生成serviceimpl层文件的过程具体如下:172.步骤s61,生成对访问层文件的第一依赖语句,以及继承服务实现层公共包和服务层文件的第三继承语句;173.其中,通过import实现对repository层文件的依赖;通过extends语句实现对commonserviceimpl<v,e,t>的继承,通过implements实现对service层文件的继承。174.步骤s62,对第一依赖语句及第三继承语句进行拼接,得到服务实现层文件。175.其中,serviceimpl层文件需要使用service层文件176.生成serviceimpl层代码如下:177.importpackagepath.xxxrepository178.@service179.publicclassxxxserviceimplextendscommonserviceimpl<v,e,t>implementsxxxservice{180.}181.图7为本申请另一实施例提供的一种数据处理方法的流程图。如图7所示,上述步骤s34,生成controller层文件的过程具体如下:182.步骤s71,生成对服务层文件的第二依赖语句,以及继承控制层公共包的第四继承语句;183.步骤s72,拼接第二依赖语句及第四继承语句,得到控制层文件。184.生成controller层代码如下:185.importpackagepath.xxxservice186.@restcontroller187.@requestmapping("/mypath")188.publicclassxxxcontrollerextendscommoncontroller<v,e,t>,{189.}190.通过上述实施例,基于操作层文件与公共数据包之间的继承关系,以及各操作层文件之间的依赖关系,可以自动生成repository、service、serviceimpl、controller文件,从而生成数据实体所对应的操作层文件,这样,避免开发人员重复编写格式相对固定的数据库操作代码,节约了大量的时间成本和人力成本,提高开发效率。191.图8为本申请实施例生成数据库操作代码的流程图,如图8所示,生成数据库操作代码的具体流程如下:192.步骤s81,获取用户输入的数据库表名tablename及存储路径信息(basepath),基于tablename访问外部依赖项,即数据库管理系统在创建数据库之后自动生的信息数据库information_schema,读取information_schema中的元数据表columns;193.步骤s82,基于元数据表columns中的元数据结构信息及basepath生成数据实体文件xxxentity;194.步骤s83,基于repository对entity的引用关系,以及对访问层公共包commonrepository<e,t>的继承关系,生成访问层文件xxxrepository;195.步骤s84,基于service对entity的引用关系,以及对服务层公共包commonservice<v,e,t>的继承关系,生成服务层文件xxxservice;196.步骤s85,基于serviceimpl对repository的依赖关系,以及对服务实现层公共包commonserviceimpl<v,e,t>的继承关系,生成服务实现层文件xxxserviceimpl;197.步骤s86,基于controller对service的依赖关系,以及对控制层公共包commoncontroller<v,e,t>的继承关系,生成控制层文件xxxcontroller。198.通过步骤s81至步骤s86,基于数据库管理系统在创建数据库后会自动生成的元数据表,以及预先抽取的公共数据包,就可以自动生成一套用于执行持久化操作的代码,开发人员仅需指定元数据表和公共数据包即可,无需针对不同数据库反复编写格式相对固定的数据库持久化操作代码,即便数据库发生变换,也无需逐一修改代码,降低编写和修改过程中发生错误的概率,节约了大量的时间成本和人力成本,提高开发效率。199.在实际使用上述方法生成代码时,用户只需在pom文件(pom是项目对象模型(projectobjectmodel)的简称,pom文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等,是项目级别的配置文件)中增加对上述公共数据包的依赖,在主类main方法中调用上述方法,通过源代码生成器codedom创建数据表名为tablename,存储路径为base的数据库操作代码(codedom.create(base,tablename)),并在配置文件中配置用户项目所使用数据库的数据库配置项。200.下述为本申请装置实施例,可以用于执行本申请方法实施例。201.图9为本申请实施例提供的一种数据处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图9所示,该数据处理装置包括:202.获取模块91,用于获取元数据表对应的元数据结构信息,所述元数据表在数据库安装后创建;203.实体生成模块92,用于根据元数据结构信息生成数据实体文件;204.文件生成模块93,用于根据数据实体文件及预设的公共数据包生成数据实体对应的操作层文件;205.代码生成模块94,用于根据数据实体文件及操作层文件得到数据库对应的数据库操作代码;206.操作模块95,用于采用数据库操作代码对数据库中的数据进行持久化操作。207.可选的,获取模块91,用于基于输入的数据库参数及数据表名,从数据库参数对应的信息数据库中读取数据表名对应的元数据表;从元数据表中提取元数据结构信息,其中,元数据结构信息包括:数据表名、字段名及字段类型。208.可选的,实体生成模块92,用于获取数据实体对应的存储路径信息;根据存储路径信息及数据实体的实体类名,拼接得到数据实体所在数据包的第一包路径信息;生成数据实体对应类库进行引用的第一引用语句;配置数据实体对应的持久化注解信息;设置数据实体对应的访问权限,并生成数据实体对应的类格式语句;根据第一包路径信息、第一引用语句、持久化注解信息、访问权限及类格式语句,得到数据实体文件。209.可选的,操作层文件包括:访问层文件、服务层文件、服务实现层文件和控制层文件;公共数据包包括:访问层公共包、服务层公共包、服务实现层公共包和控制层公共包;210.文件生成模块93,用于根据数据实体文件及访问层公共包,生成访问层文件;根据数据实体文件及服务层公共包,生成服务层文件;基于访问层文件、服务层文件及服务实现层公共包,生成服务实现层文件;根据服务层文件及控制层公共包,生成控制层文件。211.可选的,文件生成模块93,用于根据存储路径信息及访问层对应的访问层类名,拼接得到访问层文件所在数据包的第二包路径信息;生成引用数据实体文件的第二引用语句;生成继承访问层公共包的第一继承语句;拼接第二包路径信息、第二引用语句及第一继承语句,得到访问层文件。212.可选的,文件生成模块93,用于根据存储路径信息及服务层对应的服务层类名,拼接得到服务层文件所在数据包的第三包路径信息;生成引用数据实体文件的第三引用语句;生成继承服务层公共包的第二继承语句;拼接第三包路径信息、第三引用语句及第二继承语句,得到服务层文件。213.可选的,文件生成模块93,用于生成对访问层文件的第一依赖语句,以及继承服务实现层公共包和服务层文件的第三继承语句;拼接第一依赖语句及第三继承语句,得到服务实现层文件。214.可选的,文件生成模块93,用于生成对服务层文件的第二依赖语句,以及继承控制层公共包的第四继承语句;对第一依赖语句及第三继承语句进行拼接,得到控制层文件。215.本申请实施例还提供一种电子设备,如图11所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。216.存储器1503,用于存放计算机程序;217.处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。218.上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。219.通信接口用于上述电子设备与其他设备之间的通信。220.存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non‑volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。221.上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field‑programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。222.本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。223.需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。224.进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。225.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1