CN112015429B - 一种代码生成方法、装置及设备 - Google Patents

一种代码生成方法、装置及设备 Download PDF

Info

Publication number
CN112015429B
CN112015429B CN202010849374.6A CN202010849374A CN112015429B CN 112015429 B CN112015429 B CN 112015429B CN 202010849374 A CN202010849374 A CN 202010849374A CN 112015429 B CN112015429 B CN 112015429B
Authority
CN
China
Prior art keywords
code
data table
program
developed
entity
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
Application number
CN202010849374.6A
Other languages
English (en)
Other versions
CN112015429A (zh
Inventor
周振永
宋杨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Diji Intelligent Technology Co ltd
Original Assignee
Hangzhou Diji Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Diji Intelligent Technology Co ltd filed Critical Hangzhou Diji Intelligent Technology Co ltd
Priority to CN202010849374.6A priority Critical patent/CN112015429B/zh
Publication of CN112015429A publication Critical patent/CN112015429A/zh
Application granted granted Critical
Publication of CN112015429B publication Critical patent/CN112015429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本说明书实施例公开了一种代码生成方法、装置及设备,该方法包括接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码,通过本方法,可以生成符合该表结构信息的实体代码和逻辑代码,并可以提高项目开发的效率。

Description

一种代码生成方法、装置及设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种代码生成方法、装置及设备。
背景技术
对于开发一款软件项目,用户最关心的问题往往是进度和质量,而在互联网领域中,大部分的代码的整体代码结构都是类似或相差不大的,即主要都是CURD,所以如果加入新的项目,通常的做法就是再新建一个项目,然后从零开发编写该项目的代码,在编写该项目代码的过程中,将之前重复的代码结构拷贝过来使用,但是,编写上述项目代码的过程中可能会需要进行大量的上述重复劳动,从而浪费了大量的时间,而且项目开发的效率低下,为此,需要提供一种项目开发的效率更高的技术方案。
发明内容
本说明书实施例的目的是提供一种项目开发的效率更高的技术方案。
为了实现上述技术方案,本说明书实施例是这样实现的:
本说明书实施例提供的一种代码生成方法,所述方法包括:
接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码。
可选地,所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,生成所述待开发程序对应的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码;
将代码调整后得到的与所述表结构信息相匹配的实体代码和逻辑代码作为所述待开发程序对应的实体代码和逻辑代码。
可选地,所述基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与所述数据表类型相对应的实体代码进行代码调整,得到与所述表结构信息相匹配的实体代码,所述第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;
基于所述待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与所述数据表类型相对应的逻辑代码进行代码调整,得到与所述表结构信息相匹配的逻辑代码,所述第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略。
可选地,所述方法还包括:
根据所述表结构信息,获取与所述表结构信息相匹配的程序代码模板;
所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码之后,所述方法还包括:
通过预设的代码添加方式,将生成的所述待开发程序对应的实体代码和逻辑代码添加到获取的所述程序代码模板中,生成所述待开发程序的程序代码;
输出所述待开发程序的程序代码。
可选地,所述方法还包括:
接收用户提供的代码配置信息,所述代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码;
对每个所述基准数据表进行分类,得到每个所述基准数据表所属的数据表类型,将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储。
可选地,所述将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储,包括:
对每个所述基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个所述基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码;
将属于同一所述数据表类型的基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码与相应的所述数据表类型对应存储。
可选地,所述待开发程序对应的实体代码和逻辑代码包括所述待开发程序的前端对应的实体代码和逻辑代码和/或所述待开发程序的后端对应的实体代码和逻辑代码,所述待开发程序的前端包括所述待开发程序对应的页面层、Model层和接口层,所述待开发程序的后端包括所述待开发程序对应的控制层、服务层、实体层和DAO层和View层。
本说明书实施例提供的一种代码生成装置,所述装置包括:
代码生成请求模块,用于接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
处理模块,用于基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
代码生成模块,用于基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码。
可选地,所述代码生成模块,包括:
代码调整单元,用于基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码;
代码确定单元,用于将代码调整后得到的与所述表结构信息相匹配的实体代码和逻辑代码作为所述待开发程序对应的实体代码和逻辑代码。
可选地,所述代码调整单元,用于基于所述待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与所述数据表类型相对应的实体代码进行代码调整,得到与所述表结构信息相匹配的实体代码,所述第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;基于所述待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与所述数据表类型相对应的逻辑代码进行代码调整,得到与所述表结构信息相匹配的逻辑代码,所述第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略。
可选地,所述装置还包括:
模板获取模块,用于根据所述表结构信息,获取与所述表结构信息相匹配的程序代码模板;
程序代码生成模块,用于通过预设的代码添加方式,将生成的所述待开发程序对应的实体代码和逻辑代码添加到获取的所述程序代码模板中,生成所述待开发程序的程序代码;
输出模块,用于输出所述待开发程序的程序代码。
可选地,所述装置还包括:
配置信息接收模块,用于接收用户提供的代码配置信息,所述代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码;
存储模块,用于对每个所述基准数据表进行分类,得到每个所述基准数据表所属的数据表类型,将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储。
可选地,所述存储模块,包括:
校准单元,用于对每个所述基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个所述基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码;
存储单元,用于将属于同一所述数据表类型的基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码与相应的所述数据表类型对应存储。
可选地,所述待开发程序对应的实体代码和逻辑代码包括所述待开发程序的前端对应的实体代码和逻辑代码和/或所述待开发程序的后端对应的实体代码和逻辑代码,所述待开发程序的前端包括所述待开发程序对应的页面层、Model层和接口层,所述待开发程序的后端包括所述待开发程序对应的控制层、服务层、实体层和DAO层和View层。
本说明书实施例提供的一种代码生成设备,所述代码生成设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例还提供了一种存储介质,其中,所述存储介质用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例提供的代码生成方法、装置及设备,通过待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码,基于获取的与该数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码,这样,通过表结构信息确定相应的数据表类型,并通过确定数据表类型对应的实体代码和逻辑代码,生成符合该表结构信息的实体代码和逻辑代码,从而不需要进行大量拷贝工作即可快速完成对相应实体代码和逻辑代码的编写,节省了项目代码的编写时间,提高了项目开发的效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一种代码生成方法实施例;
图2为本说明书一种代码开发页面的示意图;
图3为本说明书另一种代码生成方法实施例;
图4为本说明书一种代码开发平台生成代码的示意图;
图5A为本说明书一种配置页面的示意图;
图5B为本说明书一种生成的实体代码和逻辑代码的示意图;
图6为本说明书又一种代码生成方法实施例;
图7A为本说明书一种代码开发插件对应的后台服务设备生成代码的示意图;
图7B为本说明书另一种生成的实体代码和逻辑代码的示意图;
图8为本说明书一种代码生成装置实施例;
图9为本说明书一种代码生成设备实施例。
具体实施方式
本说明书实施例提供一种代码生成方法、装置及设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
实施例一
如图1所示,本说明书实施例提供一种代码生成方法,该方法的执行主体可以为代码开发平台或代码开发插件对应的后台服务设备,该代码开发平台可以是为用户或技术人员通过浏览器等方式获取代码而构建的平台,该代码开发插件对应的后台服务设备可以是为用户或技术人员通过插件方式获取代码而构建的后台服务设备,该代码开发平台或代码开发插件对应的后台服务设备可以由服务器构建,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该服务器可以为用户或技术人员提供代码开发服务,而且,可以为用户或技术人员提供某个项目或某些项目的实体代码和逻辑代码。该方法具体可以包括以下步骤:
在步骤S102中,接收针对待开发程序的代码生成请求,该代码生成请求中至少包括待开发程序中包含的数据表的表结构信息。
其中,待开发程序可以是任意开发项目对应的待开发的应用程序,也可以是任意开发项目中某一个子项目或该开发项目的部分项目内容对应的待开发的应用程序。数据表可以是由表名、表中的字段和表的记录等三个部分组成,数据表结构信息描述了一个数据表的框架的信息,数据表结构信息可以用于定义数据表的表名、确定数据表包含哪些字段、各个字段的字段名、字段类型及宽度,并将上述数据输入到计算机中。
在实施中,对于开发一款软件项目,用户最关心的问题往往是进度和质量,而在互联网领域中,大部分的代码的整体代码结构都是类似或相差不大的,即主要都是CURD,所以如果加入新的项目,通常的做法就是再新建一个项目,然后从零开始开发编写该项目的代码,在编写该项目代码的过程中,将之前重复的代码结构拷贝过来使用,但是,编写上述项目代码的过程中可能会需要进行大量的上述重复劳动,从而浪费了大量的时间,而且项目开发的效率低下,为此,需要提供一种项目或程序开发效率更高的技术方案。本说明书实施例提供一种可实现的技术方案,具体可以包括以下内容:
在实际应用中,可以通过代码开发平台生成相应的程序代码,具体地,当用户需要使用该代码开发平台开发某个项目中的应用程序时,该用户可以通过其使用的终端设备,启动该终端设备中安装的浏览器,用户可以在该浏览器的地址栏输入该代码开发平台的网络地址,浏览器可以基于该用户输入的网络地址向该代码开发平台发送登录请求,该代码开发平台可以将该代码开发平台的代码开发页面的相关数据提供给用户的终端设备。用户的终端设备接收到该代码开发平台的代码开发页面的相关数据后,可以通过浏览器对接收到的数据进行解析,得到相应的代码开发页面,并可以通过终端设备的显示单元显示上述代码开发页面,如图2所示,该代码开发页面中可以包括信息输入框、代码输出框、代码生成按键和取消按键等。用户可以在该代码开发页面的信息输入框中输入待开发程序中包含的数据表的表结构信息等,具体如数据表的表名、数据表中的字段、各个字段的字段名、字段类型及宽度等相关信息,此外,除了可以输入待开发程序中包含的数据表的表结构信息外,还可以输入如待开发程序对应的项目的相关信息、代码的编程语言(如JAVA编程语言或C语言等)等信息,输入完成后,用户可以点击该代码开发页面中的代码生成按键,浏览器可以获取用户输入的相关信息,并通过用户输入的相关信息生成针对待开发程序的代码生成请求,可以将该针对待开发程序的代码生成请求发送给该代码开发平台,该代码开发平台可以接收针对待开发程序的代码生成请求。
此外,在实际应用中,可以通过代码开发插件生成相应的程序代码,具体地,该代码开发插件可以以插件的方式安装于用户的终端设备中的浏览器中,或者,可以安装于用户的终端设备的某应用程序(App)中。当用户需要使用该代码开发插件开发某个项目中的应用程序时,该用户可以通过其使用的终端设备,启动该终端设备中安装有上述代码开发插件的浏览器或应用程序(App),用户可以启动浏览器或应用程序(App)中的代码开发插件运行,代码开发插件可以提供包括如信息输入框、代码输出框、代码生成按键和取消按键等在内的页面。用户可以在该页面的信息输入框中输入待开发程序中包含的数据表的表结构信息等,此外,除了可以输入待开发程序中包含的数据表的表结构信息外,还可以输入如待开发程序对应的项目的相关信息、代码的编程语言等信息,输入完成后,用户可以点击该页面中的代码生成按键,代码开发插件可以获取用户输入的相关信息,并通过用户输入的相关信息生成针对待开发程序的代码生成请求,可以将该针对待开发程序的代码生成请求发送给该代码开发插件对应的后台服务设备,该后台服务设备可以接收针对待开发程序的代码生成请求。
需要说明的是,在实际应用中,除了可以通过上述两种方式进行代码开发外,还可以通过多种不同的方式进行代码开发,具体可以根据实际情况设定,本说明书实施例对此不做限定。
在步骤S104中,基于待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码。
其中,数据表类型可以是用于区分不同功能或不同用途的数据表的分类信息,数据表类型可以包括多种,不同的分类方式可以得到不同的数据表类型,例如针对Myslq数据库,可以包括如DBD、HEAP、ISAM、MERFE、MyISAM、InnoDB和Gemeni等数据表类型,其中,DBD和InnoDB属于事物安全类数据表,而HEAP、ISAM、MERFE、MyISAM和Gemeni等则属于事物非安全类数据表,此外,也可以根据实际情况对Myslq数据库中包含的数据表进行其它方式的分类,得到相应的数据表类型,例如,可以根据数据表中包含的表名、字段对应的属性等对数据表进行分类,得到相应的数据表类型,具体如,数据表1中包含的字段为姓名、年龄、性别等,数据表2中包含的字段为姓名、年龄、住址、出生年月和手机号等,由于姓名、年龄、性别、住址、出生年月和手机号等字段均可以认为是用户的个人属性,因此,可以将上述数据表1和数据表2划分为同一数据表类型,或者,也可以根据包含的字段的数量进行数据表分类,则上述数据表1和数据表2可以划分为不同的数据表类型。对于其它类型的数据库(如Oracle数据库等),也可以基于上述方式得到相应的数据表类型,或者,可以通过其它方式确定相应的数据表类型等,具体可以根据实际情况设定,本说明书实施例对此不做限定。实体代码可以是待开发程序的数据表中包含的实体对应的代码,逻辑代码可以是待开发程序的数据表对应的一种或多种不同的处理逻辑等对应的代码。
在实施中,可以预先在代码开发平台或代码开发插件对应的后台服务设备中设置一种或多种不同的数据表类型,并且可以分别为每个数据表类型设置相应的数据表的表结构信息,以及分别为每个数据表类型设置相应的实体代码和逻辑代码,其中,每个数据表类型设置相应的数据表的表结构信息可以包括一个或多个,相应的,可以为每一个表结构信息设置相应的实体代码和逻辑代码。代码开发平台或代码开发插件对应的后台服务设备获取到待开发程序中包含的数据表的表结构信息后,可以将获取的表结构信息与当前各个数据表类型对应的表结构信息进行匹配,从而可以确定与获取的表结构信息最接近或相同本地数据表结构信息对应的数据表类型,并可以将上述确定的数据表类型作为与获取的表结构信息相匹配的数据表类型。例如,获取的表结构信息中包括5个字段,5个字段均用于表示用户的个人属性,数据表类型1对应的表结构信息中包括5个字段,5个字段均用于表示与保险理赔相关的信息,数据表类型2对应的表结构信息中包括3个字段,3个字段均用于表示用户的个人属性或其中的部分字段用于表示用户的个人属性,则可以确定与获取的表结构信息最接近的为数据表类型2对应的表结构信息,此时,可以确定与该表结构信息相匹配的数据表类型为数据表类型2。
通过上述方式确定与上述表结构信息相匹配的数据表类型后,可以在代码开发平台或代码开发插件对应的后台服务设备中获取上述确定的数据表类型对应的实体代码和逻辑代码,以便在上述确定的数据表类型对应的实体代码和逻辑代码的基础上确定待开发程序对应的实体代码和逻辑代码。
在步骤S106中,基于获取的与上述数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码。
在实施中,通过上述步骤S104的处理获取到与上述数据表类型相对应的实体代码和逻辑代码后,可以结合待开发程序中包含的数据表的表结构信息,确定上述数据表类型相对应的实体代码和逻辑代码是否完全符合待开发程序对应的表结构信息,如果完全符合,则可以直接将获取的与上述数据表类型相对应的实体代码和逻辑代码分别作为待开发程序对应的实体代码和逻辑代码。如果上述数据表类型相对应的实体代码和逻辑代码未完全符合待开发程序对应的表结构信息,则可以结合待开发程序对应的表结构信息,分别对上述数据表类型相对应的实体代码和逻辑代码进行修改或调整,得到与待开发程序对应的表结构信息相匹配的实体代码和逻辑代码,例如,待开发程序对应的表结构信息包括5个用户的个人属性的字段,而上述数据表类型相对应的实体代码和逻辑代码为表结构信息包括5个用户的个人属性的字段对应的实体代码和逻辑代码,此时,可以对上述数据表类型相对应的实体代码和逻辑代码进行代码补充,即增加2个用户的个人属性的字段对应的实体代码和逻辑代码,从而得到5个用户的个人属性的字段对应的实体代码和逻辑代码,此外,还可以使用待开发程序对应的表结构信息包括的字段替换上述数据表类型对应的字段,从而可以得到与待开发程序对应的表结构信息相匹配的实体代码和逻辑代码,可以将得到的实体代码和逻辑代码分别作为待开发程序对应的实体代码和逻辑代码。
本说明书实施例提供一种代码生成方法,通过待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码,基于获取的与该数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码,这样,通过表结构信息确定相应的数据表类型,并通过确定数据表类型对应的实体代码和逻辑代码,生成符合该表结构信息的实体代码和逻辑代码,从而不需要进行大量拷贝工作即可快速完成对相应实体代码和逻辑代码的编写,节省了项目代码的编写时间,提高了项目开发的效率。
实施例二
如图3所示,本说明书实施例提供一种代码生成方法,该方法的执行主体可以为代码开发平台,该代码开发平台可以是为用户或技术人员通过浏览器等方式获取代码而构建的平台,该代码开发平台可以由服务器构建,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该服务器可以为用户或技术人员提供代码开发服务,而且,可以为用户或技术人员提供某个项目或某些项目的实体代码和逻辑代码。
其中,根据该代码开发平台所需实现的不同功能,可以将该代码开发平台划分为多个不同的组成部分,如图4所示,该代码开发平台中可以包括Walle、Orm框架和模板引擎,其中,Walle可以是连接浏览器、Orm框架和模板引擎的中间方,Orm框架可以用于为用户或技术人员生成符合其需求的实体代码,而且,Orm框架可以基于本地已有的数据表类型的实体代码,通过代码调整(包括代码添加、代码删除和代码修改)等方式,生成符合用户或技术人员需求的实体代码。模板引擎中可以包括程序代码模板的提供机制和逻辑代码生成机制,逻辑代码生成机制可以用于为用户或技术人员生成符合其需求的逻辑代码,而且,模板引擎可以基于本地已有的数据表类型的逻辑代码,通过代码调整(包括代码添加、代码删除和代码修改)等方式,生成符合用户或技术人员需求的逻辑代码。
基于该代码开发平台的上述结构,该方法具体可以包括以下步骤:
在步骤S302中,接收用户提供的代码配置信息,该代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码。
在实施中,用户或技术人员可以向代码开发平台提供基准数据表相关的信息,以便为后续待开发程序的代码的生成提供代码基础,基于此,用户或技术人员可以根据实际情况编写其所需的项目的代码,并可以为该项目的代码设置相应的数据表的表结构信息。代码开发平台中可以设置相应的配置页面,当用户或技术人员需要上传某配置信息时,可以通过其使用的终端设备,启动该终端设备中安装的浏览器,用户可以在该浏览器的地址栏输入相应的网络地址,浏览器可以基于该用户输入的网络地址向该代码开发平台发送页面请求,该代码开发平台可以将该代码开发平台的配置页面的相关数据提供给用户的终端设备。用户的终端设备接收到该代码开发平台的配置页面的相关数据后,可以通过浏览器对接收到的数据进行解析,得到相应的配置页面,并可以通过终端设备的显示单元显示上述配置页面,如图5A所示,该配置页面中可以包括配置信息输入框、提交按键和取消按键等。用户可以在该配置页面的配置信息输入框中输入一个或多个基准数据表对应的基准实体代码和基准逻辑代码等代码配置信息,此外,除了可以输入基准数据表对应的基准实体代码和基准逻辑代码外,还可以输入如基准数据表的表结构信息、基准数据表对应的数据表类型、基准数据表所属的项目的相关信息等信息,输入完成后,用户可以点击该配置页面中的提交按键,浏览器可以获取用户输入的代码配置信息,可以将该代码配置信息发送给该代码开发平台,该代码开发平台可以接收针对某项目的代码配置信息。
在步骤S304中,对每个上述基准数据表进行分类,得到每个基准数据表所属的数据表类型,将属于同一数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的数据表类型对应存储。
在实施中,代码开发平台中还可以设置有数据表的分类模型或数据表的分类算法,数据表的分类模型或数据表的分类算法可以包括多种,例如基于关联规则的分类模型或分类算法、基于决策树的分类模型或分类算法、基于k-近邻的分类模型或分类算法等,具体可以根据实际情况设定,本说明书实施例对此不做限定。上述数据表的分类模型或数据表的分类算法预先可以通过大量的历史数据表进行训练,得到训练后的数据表的分类模型或数据表的分类算法,从而保证分类结果的准确性。代码开发平台获取到用户或技术人员提供的代码配置信息后,可以将代码配置信息中的每个基准数据表的相关信息输入到上述数据表的分类模型或数据表的分类算法中进行计算,得到每个基准数据表所属的数据表类型。然后,可以将属于同一数据表类型的基准数据表放置在一个集合中,同时,可以将同一集合中的基准数据表对应的基准实体代码和基准逻辑代码与相应的数据表类型对应存储。
此外,对于上述步骤S304中将属于同一数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的数据表类型对应存储的处理,除了可以通过上述方式处理外,还可以通过多种方式进行处理,以下再提供一种可选的处理方式,具体可以包括以下步骤A2和步骤A4的处理。
在步骤A2中,对每个基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码。
在实施中,考虑到不同用户或技术人员编写的相同程序的代码可能各不相同,为了对相同程序的代码进行统一,可以在代码开发平台中设置代码校准机制,通过该代码校准机制可以使得不同用户或技术人员编写的代码符合统一的代码编写标准,基于此,代码开发平台获取到用户或技术人员提供的代码配置信息后,可以基于上述代码校准机制,对每个基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,使得每个基准数据表对应的基准实体代码和基准逻辑代码符合统一的代码编写标准,最终可以得到每个基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码。
需要说明的是,在实际应用中,可以通过如图4中的Walle对每个基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码。
在步骤A4中,将属于同一数据表类型的基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码与相应的数据表类型对应存储。
通过上述步骤S302和步骤S304的处理,在代码开发平台中可以设置有一个或多个不同数据表类型的基准数据表对应的基准实体代码和基准逻辑代码,后续可以基于代码开发平台中的上述基准实体代码和基准逻辑代码生成待开发程序的代码,具体可以参见下述步骤S306~步骤S318的处理。
在步骤S306中,接收针对待开发程序的代码生成请求,该代码生成请求中至少包括待开发程序中包含的数据表的表结构信息。
在步骤S308中,基于待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码。
此外,如果获取的与该数据表类型对应的表结构信息与上述表结构信息相同,则可以直接将与该数据表类型相对应的实体代码和逻辑代码分别作为待开发程序对应的实体代码和逻辑代码,但是,通常代码开发平台中包含的表结构信息有限,往往无法完整覆盖所有可能的表结构信息,为此,可以在代码开发平台中设置相应的代码调整机制,通过该代码调整机制将本地的代码调整成为符合表结构信息的代码,具体可以参见下述步骤S310和步骤S312的处理。
在步骤S310中,基于待开发程序中包含的数据表的表结构信息,分别对获取的与数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与表结构信息相匹配的实体代码和逻辑代码。
其中,对实体代码或逻辑代码进行代码调整的方式可以包括多种,例如可以从得到的实体代码或逻辑代码中提取代码框架,然后,可以结合待开发程序中包含的数据表的表结构信息、得到的实体代码和逻辑代码的内容,向提取的代码框架中填充相应的实体代码或逻辑代码的内容等,具体可以根据实际情况设定。
上述步骤S310的具体处理方式可以多种多样,以下再提供一种可选的处理方式,具体可以包括以下步骤B2和步骤B4的处理。
在步骤B2中,基于待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与上述数据表类型相对应的实体代码进行代码调整,得到与上述表结构信息相匹配的实体代码,第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略。
其中,第一增加代码策略可以是向获取的与上述数据表类型相对应的实体代码中添加指定的代码的策略,第一删除代码策略可以是从获取的与上述数据表类型相对应的实体代码中删除指定的代码的策略,第一修改代码策略可以是对获取的与上述数据表类型相对应的实体代码中某些指定的代码进行修改的策略等。
在实施中,如果基于待开发程序中包含的数据表的表结构信息,确定获取的与上述数据表类型相对应的实体代码中缺少指定的代码,则可以通过第一增加代码策略对获取的与上述数据表类型相对应的实体代码进行代码添加处理,得到与上述表结构信息相匹配的实体代码,如果基于待开发程序中包含的数据表的表结构信息,确定获取的与上述数据表类型相对应的实体代码中存在冗余的代码,则可以通过第一删除代码策略对获取的与上述数据表类型相对应的实体代码进行代码删除处理,得到与上述表结构信息相匹配的实体代码,如果基于待开发程序中包含的数据表的表结构信息,确定获取的与上述数据表类型相对应的实体代码中存在需要修改的代码,则可以通过第一修改代码策略对获取的与上述数据表类型相对应的实体代码进行代码修改处理,得到与上述表结构信息相匹配的实体代码。
需要说明的是,上述步骤B2的处理可以是基于待开发程序中包含的数据表的表结构信息,通过如图4中的Orm框架使用第一代码调整策略对获取的与上述数据表类型相对应的实体代码进行代码调整,得到与上述表结构信息相匹配的实体代码。
在步骤B4中,基于待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与数据表类型相对应的逻辑代码进行代码调整,得到与表结构信息相匹配的逻辑代码,第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略。
其中,第二增加代码策略可以是向获取的与上述数据表类型相对应的逻辑代码中添加指定的代码的策略,第二删除代码策略可以是从获取的与上述数据表类型相对应的逻辑代码中删除指定的代码的策略,第二修改代码策略可以是对获取的与上述数据表类型相对应的逻辑代码中某些指定的代码进行修改的策略等。
上述步骤B4的具体处理过程可以参见上述步骤B2的具体处理,在此不再赘述。
需要说明的是,上述步骤B2的处理可以是基于待开发程序中包含的数据表的表结构信息,通过如图4中的模板引擎使用第二代码调整策略对获取的与数据表类型相对应的逻辑代码进行代码调整,得到与表结构信息相匹配的逻辑代码。
需要说明的是,在实际应用中,上述步骤B2和步骤B4也可以是同时执行的,或者,可以先执行步骤B4,再执行步骤B2,具体可以根据实际情况设定。
在步骤S312中,将代码调整后得到的与上述表结构信息相匹配的实体代码和逻辑代码作为待开发程序对应的实体代码和逻辑代码。
其中,待开发程序对应的实体代码和逻辑代码可以包括如待开发程序的前端对应的实体代码和逻辑代码和/或待开发程序的后端对应的实体代码和逻辑代码,待开发程序的前端包括待开发程序对应的页面层、Model层和接口层,待开发程序的后端包括待开发程序对应的控制层、服务层、实体层和DAO层和View层。上述待开发程序的前端和后端包括的各个层仅是一种可选的结构,在实际应用中,除了包含上述多个层之外,还可以包括其它结构,具体可以根据实际情况设定。
在步骤S314中,根据上述表结构信息,获取与该表结构信息相匹配的程序代码模板。
在实施中,可以通过如图4中所示的代码开发平台中提供的模板引擎获取与该表结构信息相匹配的程序代码模板,其中,该模板引擎中可以存储有多个不同的表结构信息对应的程序代码模板。在实际应用中,代码开发平台也可以提供模板修改机制,可以通过该表结构信息,查找与该表结构信息最相近的程序代码模板,然后,代码开发平台可以通过模板修改机制和该表结构信息,对查找到的最相近的程序代码模板进行调整,得到与该表结构信息相匹配的程序代码模板。
在步骤S316中,通过预设的代码添加方式,将生成的待开发程序对应的实体代码和逻辑代码添加到获取的程序代码模板中,生成待开发程序的程序代码。
在步骤S318中,输出待开发程序的程序代码。
通过上述方式得到的结果可参见图5B,其中用户通过代码开发平台生成了应用表。
本说明书实施例提供一种代码生成方法,通过待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码,基于获取的与该数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码,这样,通过表结构信息确定相应的数据表类型,并通过确定数据表类型对应的实体代码和逻辑代码,生成符合该表结构信息的实体代码和逻辑代码,从而不需要进行大量拷贝工作即可快速完成对相应实体代码和逻辑代码的编写,节省了项目代码的编写时间,提高了项目开发的效率。
此外,提供代码开发平台的方式生成项目代码,从而相应的用户或技术人员提供灵活的代码开发平台,便于用户或技术人员及时使用,以快速完成对相应实体代码和逻辑代码的编写,进一步节省了项目代码的编写时间,提高了项目开发的效率。
实施例三
如图6所示,本说明书实施例提供一种代码生成方法,该方法的执行主体可以为代码开发插件对应的后台服务设备,该代码开发插件对应的后台服务设备可以是为用户或技术人员通过插件方式获取代码而构建的后台服务设备,该代码开发插件对应的后台服务设备可以由服务器构建,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该服务器可以为用户或技术人员提供代码开发服务,而且,可以为用户或技术人员提供某个项目或某些项目的实体代码和逻辑代码。
其中,根据该代码开发插件对应的后台服务设备所需实现的不同功能,可以将该代码开发插件对应的后台服务设备划分为多个不同的组成部分,如图7A所示,IntellijIdea为代码开发插件,该代码开发插件对应的后台服务设备中可以包括Orm框架和模板引擎,其中,Orm框架可以用于为用户或技术人员生成符合其需求的实体代码(如domain代码),而且,Orm框架可以基于本地已有的数据表类型的实体代码,通过代码调整(包括代码添加、代码删除和代码修改)等方式,生成符合用户或技术人员需求的实体代码。模板引擎中可以包括程序代码模板的提供机制和逻辑代码生成机制,逻辑代码生成机制可以用于为用户或技术人员生成符合其需求的逻辑代码(如dao代码),而且,模板引擎可以基于本地已有的数据表类型的逻辑代码,通过代码调整(包括代码添加、代码删除和代码修改)等方式,生成符合用户或技术人员需求的逻辑代码。
基于该代码开发插件对应的后台服务设备的上述结构,该方法具体可以包括以下步骤:
在步骤S602中,接收针对待开发程序的代码生成请求,该代码生成请求中至少包括待开发程序中包含的数据表的表结构信息。
在步骤S604中,基于待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码。
此外,如果获取的与该数据表类型对应的表结构信息与上述表结构信息相同,则可以直接将与该数据表类型相对应的实体代码和逻辑代码分别作为待开发程序对应的实体代码和逻辑代码,但是,通常代码开发插件对应的后台服务设备中包含的表结构信息有限,往往无法完整覆盖所有可能的表结构信息,为此,可以在代码开发插件对应的后台服务设备中设置相应的代码调整机制,通过该代码调整机制将本地的代码调整成为符合表结构信息的代码,具体可以参见下述步骤S606和步骤S608的处理。
在步骤S606中,基于待开发程序中包含的数据表的表结构信息,分别对获取的与数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与表结构信息相匹配的实体代码和逻辑代码。
上述步骤S606的具体处理方式可以多种多样,以下再提供一种可选的处理方式,具体可以包括:基于待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与上述数据表类型相对应的实体代码进行代码调整,得到与上述表结构信息相匹配的实体代码,第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;基于待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与数据表类型相对应的逻辑代码进行代码调整,得到与表结构信息相匹配的逻辑代码,第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略。
在步骤S608中,将代码调整后得到的与上述表结构信息相匹配的实体代码和逻辑代码作为待开发程序对应的实体代码和逻辑代码。
其中,待开发程序对应的实体代码和逻辑代码可以包括如待开发程序的前端对应的实体代码和逻辑代码和/或待开发程序的后端对应的实体代码和逻辑代码,待开发程序的前端包括待开发程序对应的页面层、Model层和接口层,待开发程序的后端包括待开发程序对应的控制层、服务层、实体层和DAO层和View层。上述待开发程序的前端和后端包括的各个层仅是一种可选的结构,在实际应用中,除了包含上述多个层之外,还可以包括其它结构,具体可以根据实际情况设定。
需要说明的是,上述步骤中实体代码的处理可以通过如图7A中的Orm框架实现,上述步骤中逻辑代码的处理可以通过如图7A中的模板引擎实现。
在步骤S610中,根据上述表结构信息,获取与该表结构信息相匹配的程序代码模板。
在步骤S612中,通过预设的代码添加方式,将生成的待开发程序对应的实体代码和逻辑代码添加到获取的程序代码模板中,生成待开发程序的程序代码。
在步骤S614中,输出待开发程序的程序代码。
通过上述方式得到的结果可参见图7B所示。
本说明书实施例提供一种代码生成方法,通过待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码,基于获取的与该数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码,这样,通过表结构信息确定相应的数据表类型,并通过确定数据表类型对应的实体代码和逻辑代码,生成符合该表结构信息的实体代码和逻辑代码,从而不需要进行大量拷贝工作即可快速完成对相应实体代码和逻辑代码的编写,节省了项目代码的编写时间,提高了项目开发的效率。
此外,提供代码开发插件和相应的后台服务设备的方式生成项目代码,从而相应的用户或技术人员提供灵活的代码开发插件,便于用户或技术人员及时使用,以快速完成对相应实体代码和逻辑代码的编写,进一步节省了项目代码的编写时间,提高了项目开发的效率。
实施例四
以上为本说明书实施例提供的代码生成方法,基于同样的思路,本说明书实施例还提供一种代码生成装置,如图8所示。
该代码生成装置包括:代码生成请求模块801、处理模块802和代码生成模块803,其中:
代码生成请求模块801,用于接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
处理模块802,用于基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
代码生成模块803,用于基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例中,所述代码生成模块803,包括:
代码调整单元,用于基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码;
代码确定单元,用于将代码调整后得到的与所述表结构信息相匹配的实体代码和逻辑代码作为所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例中,所述代码调整单元,用于基于所述待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与所述数据表类型相对应的实体代码进行代码调整,得到与所述表结构信息相匹配的实体代码,所述第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;基于所述待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与所述数据表类型相对应的逻辑代码进行代码调整,得到与所述表结构信息相匹配的逻辑代码,所述第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略。
本说明书实施例中,所述装置还包括:
模板获取模块,用于根据所述表结构信息,获取与所述表结构信息相匹配的程序代码模板;
程序代码生成模块,用于通过预设的代码添加方式,将生成的所述待开发程序对应的实体代码和逻辑代码添加到获取的所述程序代码模板中,生成所述待开发程序的程序代码;
输出模块,用于输出所述待开发程序的程序代码。
本说明书实施例中,所述装置还包括:
配置信息接收模块,用于接收用户提供的代码配置信息,所述代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码;
存储模块,用于对每个所述基准数据表进行分类,得到每个所述基准数据表所属的数据表类型,将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储。
本说明书实施例中,所述存储模块,包括:
校准单元,用于对每个所述基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个所述基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码;
存储单元,用于将属于同一所述数据表类型的基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码与相应的所述数据表类型对应存储。
本说明书实施例中,所述待开发程序对应的实体代码和逻辑代码包括所述待开发程序的前端对应的实体代码和逻辑代码和/或所述待开发程序的后端对应的实体代码和逻辑代码,所述待开发程序的前端包括所述待开发程序对应的页面层、Model层和接口层,所述待开发程序的后端包括所述待开发程序对应的控制层、服务层、实体层和DAO层和View层。
本说明书实施例提供一种代码生成装置,通过待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码,基于获取的与该数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码,这样,通过表结构信息确定相应的数据表类型,并通过确定数据表类型对应的实体代码和逻辑代码,生成符合该表结构信息的实体代码和逻辑代码,从而不需要进行大量拷贝工作即可快速完成对相应实体代码和逻辑代码的编写,节省了项目代码的编写时间,提高了项目开发的效率。
实施例五
以上为本说明书实施例提供的代码生成装置,基于同样的思路,本说明书实施例还提供一种代码生成设备,如图9所示。
所述代码生成设备可以为上述实施例提供的代码开发平台或代码开发插件对应的后台服务设备等。
代码生成设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对代码生成设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在代码生成设备上执行存储器902中的一系列计算机可执行指令。代码生成设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906。
具体在本实施例中,代码生成设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对代码生成设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例中,所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,生成所述待开发程序对应的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码;
将代码调整后得到的与所述表结构信息相匹配的实体代码和逻辑代码作为所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例中,所述基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与所述数据表类型相对应的实体代码进行代码调整,得到与所述表结构信息相匹配的实体代码,所述第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;
基于所述待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与所述数据表类型相对应的逻辑代码进行代码调整,得到与所述表结构信息相匹配的逻辑代码,所述第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略。
本说明书实施例中,还包括:
根据所述表结构信息,获取与所述表结构信息相匹配的程序代码模板;
所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码之后,还包括:
通过预设的代码添加方式,将生成的所述待开发程序对应的实体代码和逻辑代码添加到获取的所述程序代码模板中,生成所述待开发程序的程序代码;
输出所述待开发程序的程序代码。
本说明书实施例中,还包括:
接收用户提供的代码配置信息,所述代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码;
对每个所述基准数据表进行分类,得到每个所述基准数据表所属的数据表类型,将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储。
本说明书实施例中,所述将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储,包括:
对每个所述基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个所述基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码;
将属于同一所述数据表类型的基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码与相应的所述数据表类型对应存储。
本说明书实施例中,所述待开发程序对应的实体代码和逻辑代码包括所述待开发程序的前端对应的实体代码和逻辑代码和/或所述待开发程序的后端对应的实体代码和逻辑代码,所述待开发程序的前端包括所述待开发程序对应的页面层、Model层和接口层,所述待开发程序的后端包括所述待开发程序对应的控制层、服务层、实体层和DAO层和View层。
本说明书实施例提供一种代码生成设备,通过待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码,基于获取的与该数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码,这样,通过表结构信息确定相应的数据表类型,并通过确定数据表类型对应的实体代码和逻辑代码,生成符合该表结构信息的实体代码和逻辑代码,从而不需要进行大量拷贝工作即可快速完成对相应实体代码和逻辑代码的编写,节省了项目代码的编写时间,提高了项目开发的效率。
实施例六
进一步地,基于上述图1至图7B所示的方法,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令信息,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:
接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例中,所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,生成所述待开发程序对应的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码;
将代码调整后得到的与所述表结构信息相匹配的实体代码和逻辑代码作为所述待开发程序对应的实体代码和逻辑代码。
本说明书实施例中,所述基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与所述数据表类型相对应的实体代码进行代码调整,得到与所述表结构信息相匹配的实体代码,所述第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;
基于所述待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与所述数据表类型相对应的逻辑代码进行代码调整,得到与所述表结构信息相匹配的逻辑代码,所述第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略。
本说明书实施例中,还包括:
根据所述表结构信息,获取与所述表结构信息相匹配的程序代码模板;
所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码之后,还包括:
通过预设的代码添加方式,将生成的所述待开发程序对应的实体代码和逻辑代码添加到获取的所述程序代码模板中,生成所述待开发程序的程序代码;
输出所述待开发程序的程序代码。
本说明书实施例中,还包括:
接收用户提供的代码配置信息,所述代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码;
对每个所述基准数据表进行分类,得到每个所述基准数据表所属的数据表类型,将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储。
本说明书实施例中,所述将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储,包括:
对每个所述基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个所述基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码;
将属于同一所述数据表类型的基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码与相应的所述数据表类型对应存储。
本说明书实施例中,所述待开发程序对应的实体代码和逻辑代码包括所述待开发程序的前端对应的实体代码和逻辑代码和/或所述待开发程序的后端对应的实体代码和逻辑代码,所述待开发程序的前端包括所述待开发程序对应的页面层、Model层和接口层,所述待开发程序的后端包括所述待开发程序对应的控制层、服务层、实体层和DAO层和View层。
本说明书实施例提供一种存储介质,通过待开发程序中包含的数据表的表结构信息,确定与该表结构信息相匹配的数据表类型,并分别获取与该数据表类型相对应的实体代码和逻辑代码,基于获取的与该数据表类型相对应的实体代码和逻辑代码,以及待开发程序中包含的数据表的表结构信息,分别生成待开发程序对应的实体代码和逻辑代码,这样,通过表结构信息确定相应的数据表类型,并通过确定数据表类型对应的实体代码和逻辑代码,生成符合该表结构信息的实体代码和逻辑代码,从而不需要进行大量拷贝工作即可快速完成对相应实体代码和逻辑代码的编写,节省了项目代码的编写时间,提高了项目开发的效率。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (7)

1.一种代码生成方法,其特征在于,所述方法包括:
接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码;
其中,所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,生成所述待开发程序对应的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码;
将代码调整后得到的与所述表结构信息相匹配的实体代码和逻辑代码作为所述待开发程序对应的实体代码和逻辑代码;
所述基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码,包括:
基于所述待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与所述数据表类型相对应的实体代码进行代码调整,得到与所述表结构信息相匹配的实体代码,所述第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;
基于所述待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与所述数据表类型相对应的逻辑代码进行代码调整,得到与所述表结构信息相匹配的逻辑代码,所述第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略;
所述方法还包括:
接收用户提供的代码配置信息,所述代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码;
对每个所述基准数据表进行分类,得到每个所述基准数据表所属的数据表类型,将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述表结构信息,获取与所述表结构信息相匹配的程序代码模板;
所述基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码之后,所述方法还包括:
通过预设的代码添加方式,将生成的所述待开发程序对应的实体代码和逻辑代码添加到获取的所述程序代码模板中,生成所述待开发程序的程序代码;
输出所述待开发程序的程序代码。
3.根据权利要求1所述的方法,其特征在于,所述将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储,包括:
对每个所述基准数据表对应的基准实体代码和基准逻辑代码进行校准处理,得到每个所述基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码;
将属于同一所述数据表类型的基准数据表对应的校准后的基准实体代码和校准后的基准逻辑代码与相应的所述数据表类型对应存储。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述待开发程序对应的实体代码和逻辑代码包括所述待开发程序的前端对应的实体代码和逻辑代码和/或所述待开发程序的后端对应的实体代码和逻辑代码,所述待开发程序的前端包括所述待开发程序对应的页面层、Model层和接口层,所述待开发程序的后端包括所述待开发程序对应的控制层、服务层、实体层和DAO层和View层。
5.一种代码生成装置,其特征在于,所述装置包括:
代码生成请求模块,用于接收针对待开发程序的代码生成请求,所述代码生成请求中至少包括所述待开发程序中包含的数据表的表结构信息;
处理模块,用于基于所述待开发程序中包含的数据表的表结构信息,确定与所述表结构信息相匹配的数据表类型,并分别获取与所述数据表类型相对应的实体代码和逻辑代码;
代码生成模块,用于基于获取的与所述数据表类型相对应的实体代码和逻辑代码,以及所述待开发程序中包含的数据表的表结构信息,分别生成所述待开发程序对应的实体代码和逻辑代码;
其中,所述代码生成模块,包括:
代码调整单元,用于基于所述待开发程序中包含的数据表的表结构信息,分别对获取的与所述数据表类型相对应的实体代码和逻辑代码进行代码调整,得到与所述表结构信息相匹配的实体代码和逻辑代码;
代码确定单元,用于将代码调整后得到的与所述表结构信息相匹配的实体代码和逻辑代码作为所述待开发程序对应的实体代码和逻辑代码;
所述代码调整单元,用于基于所述待开发程序中包含的数据表的表结构信息,通过第一代码调整策略对获取的与所述数据表类型相对应的实体代码进行代码调整,得到与所述表结构信息相匹配的实体代码,所述第一代码调整策略包括以下中的一种或多种:第一增加代码策略、第一删除代码策略、第一修改代码策略;基于所述待开发程序中包含的数据表的表结构信息,通过第二代码调整策略对获取的与所述数据表类型相对应的逻辑代码进行代码调整,得到与所述表结构信息相匹配的逻辑代码,所述第二代码调整策略包括以下中的一种或多种:第二增加代码策略、第二删除代码策略、第二修改代码策略;
所述装置还包括:
配置信息接收模块,用于接收用户提供的代码配置信息,所述代码配置信息中包括一个或多个基准数据表对应的基准实体代码和基准逻辑代码;
存储模块,用于对每个所述基准数据表进行分类,得到每个所述基准数据表所属的数据表类型,将属于同一所述数据表类型的基准数据表对应的基准实体代码和基准逻辑代码与相应的所述数据表类型对应存储。
6.一种代码生成设备,其特征在于,所述代码生成设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器实现权利要求1所述的方法。
7.一种存储介质,所述存储介质用于存储计算机可执行指令,所述可执行指令在被执行时实现权利要求1所述的方法。
CN202010849374.6A 2020-08-21 2020-08-21 一种代码生成方法、装置及设备 Active CN112015429B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010849374.6A CN112015429B (zh) 2020-08-21 2020-08-21 一种代码生成方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010849374.6A CN112015429B (zh) 2020-08-21 2020-08-21 一种代码生成方法、装置及设备

Publications (2)

Publication Number Publication Date
CN112015429A CN112015429A (zh) 2020-12-01
CN112015429B true CN112015429B (zh) 2023-08-04

Family

ID=73504391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010849374.6A Active CN112015429B (zh) 2020-08-21 2020-08-21 一种代码生成方法、装置及设备

Country Status (1)

Country Link
CN (1) CN112015429B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113422778B (zh) * 2021-07-01 2022-11-11 中国工商银行股份有限公司 防火墙策略配置方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1336922A2 (de) * 2002-02-15 2003-08-20 Deutsche Telekom AG Verfahren und Vorrichtung zum automatischen Erstellen eines Datawarehouse
CN110147225A (zh) * 2019-04-02 2019-08-20 平安科技(深圳)有限公司 一种代码生成方法、装置及计算机设备、存储介质
CN110825362A (zh) * 2019-11-04 2020-02-21 广东道一信息技术股份有限公司 低代码应用软件开发系统及方法
CN111078205A (zh) * 2019-11-22 2020-04-28 北京锐安科技有限公司 一种模块化编程方法、装置、存储介质及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032210B2 (en) * 2001-11-11 2006-04-18 International Business Machines Corporation Method and system for generating program source code of a computer application from an information model
CN101697120B (zh) * 2009-11-05 2012-11-28 河南辉煌科技股份有限公司 基于关系型数据库的j2ee代码生成方法
CN103135976B (zh) * 2011-11-30 2016-05-11 阿里巴巴集团控股有限公司 代码自动生成方法及装置
US20160041815A1 (en) * 2014-08-11 2016-02-11 Chirag P. Bhagat Computer Source Code Generator for Building Software Applications
CN107729003A (zh) * 2017-11-20 2018-02-23 江苏神州信源系统工程有限公司 代码的自动生成方法、装置及电子设备
CN108762743B (zh) * 2018-05-23 2021-09-03 浪潮软件股份有限公司 一种数据表操作代码生成方法及装置
CN109359112A (zh) * 2018-10-15 2019-02-19 行吟信息科技(上海)有限公司 一种代码的自动生成方法及代码生成器
CN109522013A (zh) * 2018-11-08 2019-03-26 网宿科技股份有限公司 一种业务功能的代码生成方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1336922A2 (de) * 2002-02-15 2003-08-20 Deutsche Telekom AG Verfahren und Vorrichtung zum automatischen Erstellen eines Datawarehouse
CN110147225A (zh) * 2019-04-02 2019-08-20 平安科技(深圳)有限公司 一种代码生成方法、装置及计算机设备、存储介质
CN110825362A (zh) * 2019-11-04 2020-02-21 广东道一信息技术股份有限公司 低代码应用软件开发系统及方法
CN111078205A (zh) * 2019-11-22 2020-04-28 北京锐安科技有限公司 一种模块化编程方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于模板的代码自动生成系统的研究与实现;夏云龙;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-224 *

Also Published As

Publication number Publication date
CN112015429A (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
Balci Requirements for model development environments
US7424485B2 (en) Method and apparatus for generating user interfaces based upon automation with full flexibility
Rosenmüller et al. FAME-DBMS: tailor-made data management solutions for embedded systems
CN111061475B (zh) 软件代码生成方法、装置、计算机设备和存储介质
US11580096B2 (en) System for uploading information into a metadata repository
CN109657177A (zh) 升级后页面的生成方法、装置、存储介质及计算机设备
CN111126019A (zh) 基于模式定制的报表生成方法、装置和电子设备
CN111414350A (zh) 一种服务生成方法及装置
CN110309099A (zh) 接口管理方法、装置、设备及计算机可读存储介质
CN112506505A (zh) 一种代码模板引擎进行程序代码生产的方法
CN112015429B (zh) 一种代码生成方法、装置及设备
CN106648647B (zh) 基于Spring依赖注入动态创建对象的综合管控系统
CN102171696B (zh) 定制资料的生成方法和装置
CN116560683A (zh) 软件更新方法、装置、设备及存储介质
US20220198153A1 (en) Model training
CN115543428A (zh) 一种基于策略模板的模拟数据生成方法和装置
CN114371845A (zh) 表单生成方法及装置
CN115221852A (zh) 基于vxe-table的动态计算表格实现方法、装置和计算机设备
CN114218261A (zh) 数据查询方法、装置、存储介质以及电子设备
CN107179924A (zh) 应用程序更新方法及更新系统
CN116974581B (zh) 代码生成方法、装置、电子设备和存储介质
KR102621198B1 (ko) 비즈니스 로직을 처리하는 전자장치 및 그 동작 방법
CN108229040A (zh) 一种数控车床部件安装方法、装置及计算机可读存储介质
CN109857390B (zh) 一种Git仓库文件注解系统的注解传递方法
CN109918300B (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