一种代码生成方法、装置及计算机设备、存储介质制造方法及图纸

技术编号:21913660 阅读:22 留言:0更新日期:2019-08-21 12:20
本发明专利技术属于数据处理技术领域,涉及一种代码生成方法、装置及计算机设备、存储介质,所述方法包括:读取至少一个业务表和与所述至少一个业务表相对应的至少一个模板文件,各个所述模板文件属于同一软件架构中的不同逻辑层,各个所述模板文件中包含用于不同逻辑层之间调用的接口代码;基于各个所述业务表获取相应的表结构信息;确定各个所述模板文件中的动态变量,根据所述表结构信息对相应的所述模板文件中的动态变量进行赋值,以生成不同逻辑层的代码文件和各逻辑层的代码文件的调用关系。本发明专利技术提供的方案通过读取同一架构下各逻辑层的业务表和模板文件,结合两者生成框架代码,开发人员可在框架代码的基础上进行开发,提升开发效率。

A Code Generation Method, Device, Computer Equipment and Storage Media

【技术实现步骤摘要】
一种代码生成方法、装置及计算机设备、存储介质
本专利技术属于数据处理
,尤其涉及一种代码生成方法、装置及计算机设备、存储介质。
技术介绍
Web项目的开发都是由框架建设开始,框架建设完成基本决定程序员需要编写代码的部分以及决定了这些代码的结构。以springMVC框架为例,在springMVC框架中包含了控制层(controller)、业务层(service)、数据操作层(DAO)、实体层(entity)、视图层(view)等逻辑层,控制层提供接口进行客户端与服务器之间的交互并且可以返回视图至视图层,业务层对具体的业务逻辑进行实现,包括操作数据操作层和实体层,数据操作层则直接对数据库进行操作,实现实体和数据表之间的数据交互。在各逻辑层的实现代码中,存在一些相同或类似的处理方法或接口,比如每个逻辑层都对应有业务表,每一张业务表都存在有增删改查的方法,通常对于这些方法,每一个主要的业务表所对应的所有逻辑层的代码都会有相应的实现,因此程序员需要根据表结构编写每一张业务表对应的每个逻辑层的代码,但是对于增删改查这些方法和接口将存在重复开发的问题,因此需要一种方案能够降低重复开发率,以提升开发效率。
技术实现思路
为了解决上述问题,本专利技术实施例提供一种代码生成方法、装置和计算机设备、存储介质,以解决现有技术中的软件架构的不同逻辑层中相同或类似的处理方法或接口存在重复开发情况、致使开发效率低的问题。第一方面,本专利技术实施例提供一种代码生成方法,包括:读取至少一个业务表以及与所述至少一个业务表相对应的至少一个模板文件,其中获取的各个所述模板文件分别属于同一软件架构中的不同逻辑层,各个所述模板文件中包含用于不同逻辑层之间调用的接口代码;基于各个所述业务表获取相应的表结构信息;确定各个所述模板文件中的动态变量,根据获取的所述表结构信息对相应的所述模板文件中的动态变量进行赋值,以生成不同逻辑层的代码文件和各逻辑层的代码文件的调用关系。作为本专利技术可实施的方式,所述获取至少一个业务表以及与所述至少一个业务表相对应的至少一个模板文件的步骤包括:接收数据读取指令,根据所述数据读取指令连接存储有预先配置的业务表和模板文件的至少一个数据库;获取需读取的业务表和模板文件在数据库中的地址信息;根据所述地址信息从所述至少一个数据库中读取所需的至少一个业务表和至少一个模板文件。作为本专利技术可实施的方式,所述根据所述地址信息从所述至少一个数据库中读取所需的至少一个业务表和至少一个模板文件的步骤包括:根据地址信息从所述至少一个数据库中查询每一个逻辑层对应的业务表和模板文件;当查询到同一逻辑层对应有两个以上业务表或者两个模板文件时,判断属于同一逻辑层的两个以上业务表相互之间是否存在关联,若是则读取所有业务表,否则读取最新的业务表;以及判断属于同一逻辑层的两个以上模板文件相互之间是否存在关联,若是则读取所有模板文件,否则读取最新的模板文件。作为本专利技术可实施的方式,所述基于各个所述业务表获取相应的表结构信息包括:从每个所述业务表中提取全部表名,并提取与每个表名相关联的数据信息,将各个所述表名转化为JAVA类名,将每个所述JAVA类名和对应的相关联的数据信息进行封装,得到表结构信息;相应的,所述根据获取的所述表结构信息对相应的所述模板文件中的动态变量进行赋值的步骤包括:解析所述表结构信息,得到至少一个JAVA类名和与每个JAVA类名相关联的数据信息;根据每个JAVA类名替换对应的模板文件中的动态变量的变量名,并根据每个JAVA类名对应的相关联的数据信息对对应的模板文件中替换变量名后的动态变量进行赋值。作为本专利技术可实施的方式,所述根据获取的所述表结构信息对相应的所述模板文件中的动态变量进行赋值的步骤还包括:确定所述模板文件中所有的动态变量与得到的JAVA类名的匹配关系,若所述表结构信息的解析结果存在JAVA类名在所述模板文件中没有匹配的动态变量,或者所述模板文件中存在动态变量在所述表结构信息的解析结果中没有匹配的JAVA类名,则提示代码生成错误。作为本专利技术可实施的方式,在生成不同逻辑层的代码文件和各逻辑层的代码文件的调用关系的步骤之后,还包括:对生成的各逻辑层的所述代码文件进行调试,调试完成后提示所述代码文件中需要修改和扩展的位置。作为本专利技术可实施的方式,在获取至少一个业务表以及与所述至少一个业务表相对应的至少一个模板文件的步骤前,包括配置各逻辑层的模板文件的步骤,所述模板文件的配置过程包括:根据已有的项目代码提取各逻辑层通用方法或接口所对应的代码,以及提取各逻辑层独有且高频出现的方法或接口对应的代码;确定提取的代码中的参数信息;基于提取的所述参数信息,将不同逻辑层之间调用的接口代码以及各逻辑层通用方法代码或独有方法代码中的参数配置为可动态赋值的动态变量,生成各逻辑层的模板文件。第二方面,本专利技术实施例提供一种代码生成装置,包括:读取模块,读取至少一个业务表以及与所述至少一个业务表相对应的至少一个模板文件,其中获取的各个所述模板文件分别属于同一软件架构中的不同逻辑层,各个所述模板文件中包含用于不同逻辑层之间调用的接口代码;信息获取模块,基于各个所述业务表获取相应的表结构信息;代码生成模块,确定各个所述模板文件中的动态变量,根据获取的所述表结构信息对相应的所述模板文件中的动态变量进行赋值,以生成不同逻辑层的代码文件和各逻辑层的代码文件的调用关系。第三方面,本专利技术实施例提供一种计算机设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使得所述至少一个处理器能够执行如上所述的代码生成方法的步骤。第四方面,本专利技术实施例提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被至少一个处理器执行时,使得至少一个处理器执行如上所述的代码生成方法的步骤。根据本专利技术实施例提供的代码生成方法、装置和计算机设备、存储介质,通过读取同一架构下不同逻辑层的业务表和模板文件,由业务表结合模板文件生成软件架构中各逻辑层的代码文件,即可得到软件架构的框架代码,后续开发人员在框架代码的基础上进一步进行开发,从而可大量节省程序员编写代码的时间,减少重复开发的情况,提升开发人员的开发效率,对于不同的web项目,只需基于项目的代码框架,对代码框架进行逻辑拆分得到对应的业务表和模板文件,即可基于该方法实现代码的自动生成,具有较强的通用性。附图说明为了更清楚地说明本专利技术的方案,下面将对实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的代码生成方法的流程图;图2为本专利技术实施例提供的获取业务表和模板文件的流程图;图3为本专利技术实施例提供的模板文件的配置过程的流程图;图4为本专利技术实施例提供的代码生成装置的结构框图;图5为本专利技术实施例提供的代码生成装置的另一结构框图;图6为本专利技术实施例提供的代码生成装置的又一结构框图;图7为本专利技术另一实施例提供的代码生成装置的结构框图;图8为本专利技术实施例提供的计算机设备的结构框图。具体实施方式为了使本文档来自技高网...

【技术保护点】
1.一种代码生成方法,其特征在于,包括:读取至少一个业务表以及与所述至少一个业务表相对应的至少一个模板文件,其中获取的各个所述模板文件分别属于同一软件架构中的不同逻辑层,各个所述模板文件中包含用于不同逻辑层之间调用的接口代码;基于各个所述业务表获取相应的表结构信息;确定各个所述模板文件中的动态变量,根据获取的所述表结构信息对相应的所述模板文件中的动态变量进行赋值,以生成不同逻辑层的代码文件和各逻辑层的代码文件的调用关系。

【技术特征摘要】
1.一种代码生成方法,其特征在于,包括:读取至少一个业务表以及与所述至少一个业务表相对应的至少一个模板文件,其中获取的各个所述模板文件分别属于同一软件架构中的不同逻辑层,各个所述模板文件中包含用于不同逻辑层之间调用的接口代码;基于各个所述业务表获取相应的表结构信息;确定各个所述模板文件中的动态变量,根据获取的所述表结构信息对相应的所述模板文件中的动态变量进行赋值,以生成不同逻辑层的代码文件和各逻辑层的代码文件的调用关系。2.根据权利要求1所述的代码生成方法,其特征在于,所述获取至少一个业务表以及与所述至少一个业务表相对应的至少一个模板文件的步骤包括:接收数据读取指令,根据所述数据读取指令连接存储有预先配置的业务表和模板文件的至少一个数据库;获取需读取的业务表和模板文件在数据库中的地址信息;根据所述地址信息从所述至少一个数据库中读取所需的至少一个业务表和至少一个模板文件。3.根据权利要求2所述的代码生成方法,其特征在于,所述根据所述地址信息从所述至少一个数据库中读取所需的至少一个业务表和至少一个模板文件的步骤包括:根据地址信息从所述至少一个数据库中查询每一个逻辑层对应的业务表和模板文件;当查询到同一逻辑层对应有两个以上业务表或者两个以上模板文件时,判断属于同一逻辑层的两个以上业务表相互之间是否存在关联,若是则读取所有业务表,否则读取最新的业务表;以及判断属于同一逻辑层的两个以上模板文件相互之间是否存在关联,若是则读取所有模板文件,否则读取最新的模板文件。4.根据权利要求1至3任一项所述的代码生成方法,其特征在于,所述基于各个所述业务表获取相应的表结构信息包括:从每个所述业务表中提取全部表名,并提取与每个表名相关联的数据信息,将各个所述表名转化为JAVA类名,将每个所述JAVA类名和对应的相关联的数据信息进行封装,得到表结构信息;所述根据获取的所述表结构信息对相应的所述模板文件中的动态变量进行赋值的步骤包括:解析所述表结构信息,得到至少一个JAVA类名和与每个JAVA类名相关联的数据信息;根据每个JAVA类名替换对应的模板文件中的动态变量的变量名,并根据每个JAVA类名对应的相关联的数据信息对对应的模板文件中替换变量名后的动态变量进行赋值。5.根据权利要求4所述的代码生成方法,其特征在于,所述...

【专利技术属性】
技术研发人员:王建华何四燕曹佩敬
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1