CN111061475B - 软件代码生成方法、装置、计算机设备和存储介质 - Google Patents

软件代码生成方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111061475B
CN111061475B CN201911281925.7A CN201911281925A CN111061475B CN 111061475 B CN111061475 B CN 111061475B CN 201911281925 A CN201911281925 A CN 201911281925A CN 111061475 B CN111061475 B CN 111061475B
Authority
CN
China
Prior art keywords
code
entity
service
template engine
code template
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
CN201911281925.7A
Other languages
English (en)
Other versions
CN111061475A (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.)
China Southern Power Grid Digital Grid Technology Guangdong Co ltd
China Southern Power Grid Co Ltd
Southern Power Grid Digital Grid Research Institute Co Ltd
Original Assignee
China Southern Power Grid Co Ltd
Southern Power Grid Digital Grid Research Institute 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 China Southern Power Grid Co Ltd, Southern Power Grid Digital Grid Research Institute Co Ltd filed Critical China Southern Power Grid Co Ltd
Priority to CN201911281925.7A priority Critical patent/CN111061475B/zh
Publication of CN111061475A publication Critical patent/CN111061475A/zh
Application granted granted Critical
Publication of CN111061475B publication Critical patent/CN111061475B/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/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven

Abstract

本申请涉及一种软件代码生成方法、装置、计算机设备和存储介质。所述方法包括:获取待开发软件的数据库信息,根据所述数据库信息将数据表导入代码模板引擎生成实体模型的元数据,获取在所述代码模板引擎对所述实体模型配置的新增实体方法,根据所述新增实体方法以及所述实体模型的元数据,通过所述代码模板引擎生成所述待开发软件的代码文件。该方法实现了基于代码模板引擎快速开发软件代码,提高了软件开发效率。

Description

软件代码生成方法、装置、计算机设备和存储介质
技术领域
本申请涉及软件开发技术领域,特别是涉及一种软件代码生成方法、装置、计算机设备和存储介质。
背景技术
随着信息化技术的发展,人们通过借助软件系统,以提高事务的管理和处理效率。为适应不同领域不同事务的处理需求,需要针对性的开发相应的软件。如企业管理中,对于采购信息需要专门的采购管理软件,对于财务数据需要专门的财务管理软件。因此,软件开发的需求非常大。
软件开发过程中,软件代码的编码工作占据了较大的工作量。传统的软件代码生成方式,是由编程人员根据需求文档,利用软件开发工具编码生成软件代码。在软件开发需求量大的背景小,采用传统的方法无法满足效率需求。
发明内容
基于此,有必要针对上述技术问题,提供一种高效的软件代码生成方法、装置、计算机设备和存储介质。
一种软件代码生成方法,所述方法包括:
获取待开发软件的数据库信息;
根据所述数据库信息将数据表导入代码模板引擎生成实体模型的元数据;
获取在所述代码模板引擎对所述实体模型配置的新增实体方法;
根据所述新增实体方法以及所述实体模型的元数据,通过所述代码模板引擎生成所述待开发软件的代码文件。
在其中一个实施例中,所述根据所述数据库信息将数据表导入代码模板引擎生成实体模型的元数据,包括:
根据所述数据库信息,加载数据表;
解析所述数据表,得到业务实体、业务属性、业务方法和业务关系;
将所述业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
在其中一个实施例中,所述根据所述新增实体方法以及所述实体模型的元数据,通过所述代码模板引擎生成所述待开发软件的代码文件,包括:
获取在所述代码模板引擎中选定的代码模板;
在所述代码模板引擎中,从所述实体模型中拉取对应的元数据,填充到所述代码模板以及所述新增实体方法中,生成所述待开发软件的代码文件。
在其中一个实施例中,所述获取在所述代码模板引擎对所述实体模型配置的新增实体方法,包括:
获取在所述代码模板引擎中从设定的方法类型中选定的方法类型;
获取在所述代码模板引擎中从设定的操作类型中选定的操作类型;
获取在所述代码模板引擎中配置的方法代码;
根据所述选定的方法类型、所述选定的操作类型以及配置的方法代码,得到对所述实体模型配置的新增实体方法。
在其中一个实施例中,所述代码文件包括各系统层的业务代码以及各系统层的业务代码的调用关系;
在所述根据所述新增实体方法以及所述实体模型的元数据,通过所述代码模板引擎生成所述待开发软件的代码文件之后,还包括:调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的所述业务代码。
在其中一个实施例中,在调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的所述业务代码之后,还包括:
通过所述代码开发工具获取对所述业务代码的修改指令;
根据所述修改指令修改所述业务代码。
一种软件代码生成装置,所述装置包括:
数据库信息获取模块,用于获取待开发软件的数据库信息;
元数据获取模块,用于根据所述数据库信息将数据表导入代码模板引擎生成实体模型的元数据;
新增模块,用于获取在所述代码模板引擎对所述实体模型配置的新增实体方法;
生成模块,用于根据所述新增实体方法以及所述实体模型的元数据,通过所述代码模板引擎生成所述待开发软件的代码文件。
在其中一个实施例中,所述元数据获取模块,包括:
加载模块,用于根据所述数据库信息,加载数据表;
解析模块,用于解析所述数据表,得到业务实体、业务属性、业务方法和业务关系;
定义模块,用于将所述业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各实施例任一项所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各实施例中任一项所述方法的步骤。
上述软件代码生成方法、装置、计算机设备和存储介质,通过根据数据库信息将数据表导入代码模板引擎,得到代码生成所需的实体模型的元数据,实现了元数据的快速录入,利用代码模板引擎新增实体方法,能够实现根据业务需求对代码进行微调,进而通过代码模板引擎生成待开发软件的代码文件,实现了基于代码模板引擎快速开发软件代码,提高了软件开发效率。
附图说明
图1为一个实施例中软件代码生成方法的应用环境图;
图2为一个实施例中软件代码生成方法的流程示意图;
图3为一个实施例中软件的各系统层的调用关系示意图;
图4为一个实施例中软件代码生成装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的软件代码生成方法,可以应用于如图1所示的应用环境中。该应用环境包括数据库101以及软件开发终端102,数据库101与软件开发终端102通过网络进行通信。软件开发终端获取待开发软件的数据库信息,根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据,获取在代码模板引擎对实体模型配置的新增实体方法,根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件。其中,软件开发终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑。
在一个实施例中,如图2所示,提供了一种软件代码生成方法,以该方法应用于图1中的软件开发终端102为例进行说明,包括以下步骤:
步骤202,获取待开发软件的数据库信息。
具体地,软件开发人员预先根据项目开发需求构建数据库。构建的数据库,数据库中包括数据表以及各数据表的字段以及字段属性。数据库信息包括数据库地址、数据库用户名以及密码。
步骤S204,根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据。
具体地,通过模板引擎从数据库中导入实体,得到实体建模的元数据。其中,元数据元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data)。元数据作用是:1、描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。2、元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。
本申请的代码模板引擎为MDA(Model Driven Architecture)模型驱动架构,它是由OMG定义的一个软件开发框架。它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。和UML相比,MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。MDA把建模语言用作一种编程语言而不仅仅是设计语言。MDA的关键之处是模型在软件开发中扮演了非常重要的角色。
MDA源自于众所周知的把系统操作的规范从系统利用底层平台能力的方式细节中分离出来的思想,MDA提供了一种途径(通过相关的工具)来规范化一个平台独立的系统、规范化平台、为系统选择一个特定的实现平台,并且把系统规范转换到特定的实现平台。MDA的三个主要目标是:通过架构性的分离来实现轻便性、互操作性和可重用性。
具体地,根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据,包括:根据数据库信息,加载数据表;解析数据表,得到业务实体、业务属性、业务方法和业务关系;将业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
实体模型是指对软件业务实体及其属性、方法、关系的信息架构,信息架构是指数据间的关系,如业务实体、业务属性、业务方法以业务实体间的关系。实体建模是指将实体信息作为元数据提供给代码模板引擎使用。利用数据库信息,加载数据表,从数据表中分析出业务实体及其属性、方法、关系,定义到代码模板引擎中,供代码生成使用。
具体地,数据库信息包括数据库地址、数据库用户名以及密码。利用数据库用户名以及密码登录数据库地址对应的数据库,加载该数据库中的数据表。对数据表的表结构进行解析,分析出数据表中的业务实体、业务属性、业务方法和业务关系。
其中,业务实体与数据表对应,包括实体名称等信息。如一个业务实体为服务器信息。
业务属性是实体属性信息,实体属性一般是从数据库表导入时会自动带出所有的字段作为属性,属性来源分为:关联字典、关联枚举和关联属性。例如,业务属性为实体的服务器编号,服务器名称,服务器端口。又例如。业务属性为数据表的字段属性,包括字段名等。
业务方法是指实体方法,即方法代码的执行逻辑。在实体方法中共分为七大类型:空方法、级联操作、存储过程调用、函数调用、自定义SQL调用、查询建模和查询重写。
业务关系是指实体之间的关系。
将业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据,其中,代码模型引擎支持对业务实体、业务属性、业务方法和业务关系进行再编辑。如对实体关系的信息进行编辑,该页面功能可以配置出业务中的一对一,一对多,多对一,多对多这四种关系,囊括了所有的业务关系,而且能够自动化的生成对应的实体属性,在做级联操作时也能自动化的带出所需要的关系。又如,实体编辑是对实体的基本信息进行编辑。实体基本信息中如果当前实体需要走工作流需要选择父实体为工作流实体,并且还要关联一个工作流流程,其他基本信息都会自动从数据库表导入时自动检索出。
步骤S206,获取在代码模板引擎对实体模型配置的新增实体方法。
具体地,本申请的技术方案能够对实体模型进行完善,添加实体方法。
具体地,获取在代码模板引擎对实体模型配置的实体方法包括:获取在代码模板引擎中从设定的方法类型中选定的方法类型;获取在代码模板引擎中从设定的操作类型中选定的操作类型;获取在代码模板引擎中配置的方法代码;根据选定的方法类型、选定的操作类型以及配置的方法代码,得到对实体模型配置的新增实体方法。
具体地,在代码模板引擎具有方法编辑页面,在该页面能够添加实体方法。在该页面,展示有设定的方法类型,操作类型以及方法代码输入框。具体地,方法类型包括空方法、级联操作、存储过程调用、函数调用、自定义SQL调用、查询建模和查询重写。操作类型包括:新增、查询、更新、删除、保存、生成相关方法、记录数方法和分页方法。在选定操作类型和方法类型后,在代码输入框可输入执行语句和排序语句等,从而完成实体方法的增加。
步骤S208,根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件。
具体地,实体模型的元数据供代码模板生成引擎生成代码文件使用。一个实施例中,根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件,包括:获取在代码模板引擎中选定的代码模板;在代码模板引擎中,从实体模型中拉取对应的元数据,填充到代码模板以及新增实体方法中,生成待开发软件的代码文件。
其中,在特定的技术架构下,不论是前端代码还是后台代码,相同的功能其代码结构都是相似的。通过对常见的业务场景进行梳理、积累、分析,由核心的高级开发人员对这些业务场景基于特定的技术平台分别编写最佳实践,并保证最佳实践代码的质量,再将这些最佳实践代码分别转换成代码模板,通过对最佳实践代码模板的不断积累,形成一套完整的代码模板库,集成在代码模板引擎中。软件开发人员可根据实际需求选定匹配的代码模板。
通过在代码模板引擎选定代码模型,利用实体模型的元数据,快速地生成代码模型。
上述的软件代码生成方法,通过根据数据库信息将数据表导入代码模板引擎,得到代码生成所需的实体模型的元数据,实现了元数据的快速录入,利用代码模板引擎新增实体方法,能够实现根据业务需求对代码进行微调,进而通过代码模板引擎生成待开发软件的代码文件,实现了基于代码模板引擎快速开发软件代码,提高了软件开发效率。
在另一个实施例中,代码文件包括各系统层的业务代码以及各系统层的业务代码的调用关系。其中,系统层包括WEB展示层(Action)、Web控制层业务逻辑层(Service)、数据访问层(DAO)。一个实施例的各系统层的调用关系如图3所示。
软件代码生成方法还包括,在根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件之后,还包括:调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的业务代码。
其中,代码开发工具是软件开发人员编写代码所使用的工具,如Visual Studio。对于利用模板代码引擎生成的代码文件,通过调用代码开发工具打开,代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的业务代码。从而,业务代码在软件开发工具中显示。
进一步地,通过软件开发工具,对于代码模板引擎的编写的代码,开发人员能够进一步修改。具体地,通过代码开发工具获取对业务代码的修改指令,根据修改指令修改业务代码,得到最终的软件代码。
本申请的技术方案,基于模板的代码生成方法,基于MDA架构思想,通过最佳实践的经验积累,以抽象化的软件工程模型为基础,形成一整套的软件代码模板,结合模板引擎技术及建模操作界面构建的业务模型元数据,实现一键生成基于特定平台的业务代码,实现快速、可视化的业务功能开发模式,提升软件开发效率,统一软件开发术语、统一软件开发架构、降低软件开发成本,保障软件交付成果质量。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种软件代码生成装置,包括:
数据库信息获取模块402,用于获取待开发软件的数据库信息。
元数据获取模块404,用于根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据。
新增模块406,用于获取在代码模板引擎对实体模型配置的新增实体方法。
生成模块408,用于根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件。
上述的软件代码生成装置,通过根据数据库信息将数据表导入代码模板引擎,得到代码生成所需的实体模型的元数据,实现了元数据的快速录入,利用代码模板引擎新增实体方法,能够实现根据业务需求对代码进行微调,进而通过代码模板引擎生成待开发软件的代码文件,实现了基于代码模板引擎快速开发软件代码,提高了软件开发效率。
在另一个实施例中,元数据获取模块,包括:
加载模块,用于根据数据库信息,加载数据表;
解析模块,用于解析数据表,得到业务实体、业务属性、业务方法和业务关系;
定义模块,用于将业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
在另一个实施例中,生成模块408包括模板选定模块和代码生成模块;
模板选定模块,用于获取在代码模板引擎中选定的代码模板。
代码生成模块,用于在代码模板引擎中,从实体模型中拉取对应的元数据,填充到代码模板以及新增实体方法中,生成待开发软件的代码文件。
在另一个实施例中,新增模块,包括:
方法获取模块,用于获取在代码模板引擎中从设定的方法类型中选定的方法类型。
操作获取模块,用于获取在代码模板引擎中从设定的操作类型中选定的操作类型;
代码获取模块,用于获取在代码模板引擎中配置的方法代码;
方法新增模块,用于根据选定的方法类型、选定的操作类型以及配置的方法代码,得到对实体模型配置的新增实体方法。
在另一个实施例中,代码文件包括各系统层的业务代码以及各系统层的业务代码的调用关系,软件代码生成装置还包括:
调用模块,用于调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的业务代码。
在另一个实施例中,软件代码生成装置还包括:
修改模块,用于通过代码开发工具获取对业务代码的修改指令,根据修改指令修改业务代码。
关于软件代码生成装置的具体限定可以参见上文中对于软件代码生成方法的限定,在此不再赘述。上述软件代码生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件代码生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待开发软件的数据库信息;
根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据;
获取在代码模板引擎对实体模型配置的新增实体方法;
根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件。
在其中一个实施例中,根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据,包括:
根据数据库信息,加载数据表;
解析数据表,得到业务实体、业务属性、业务方法和业务关系;
将业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
在其中一个实施例中,根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件,包括:
获取在代码模板引擎中选定的代码模板;
在代码模板引擎中,从实体模型中拉取对应的元数据,填充到代码模板以及新增实体方法中,生成待开发软件的代码文件。
在其中一个实施例中,获取在代码模板引擎对实体模型配置的新增实体方法,包括:
获取在代码模板引擎中从设定的方法类型中选定的方法类型;
获取在代码模板引擎中从设定的操作类型中选定的操作类型;
获取在代码模板引擎中配置的方法代码;
根据选定的方法类型、选定的操作类型以及配置的方法代码,得到对实体模型配置的新增实体方法。
在其中一个实施例中,代码文件包括各系统层的业务代码以及各系统层的业务代码的调用关系;处理器执行计算机程序时还执行以下步骤:
调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的业务代码。
在另一个实施例中,处理器执行计算机程序时还执行以下步骤:
通过代码开发工具获取对业务代码的修改指令;
根据修改指令修改业务代码。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待开发软件的数据库信息;
根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据;
获取在代码模板引擎对实体模型配置的新增实体方法;
根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件。
在其中一个实施例中,根据数据库信息将数据表导入代码模板引擎生成实体模型的元数据,包括:
根据数据库信息,加载数据表;
解析数据表,得到业务实体、业务属性、业务方法和业务关系;
将业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
在其中一个实施例中,根据新增实体方法以及实体模型的元数据,通过代码模板引擎生成待开发软件的代码文件,包括:
获取在代码模板引擎中选定的代码模板;
在代码模板引擎中,从实体模型中拉取对应的元数据,填充到代码模板以及新增实体方法中,生成待开发软件的代码文件。
在其中一个实施例中,获取在代码模板引擎对实体模型配置的新增实体方法,包括:
获取在代码模板引擎中从设定的方法类型中选定的方法类型;
获取在代码模板引擎中从设定的操作类型中选定的操作类型;
获取在代码模板引擎中配置的方法代码;
根据选定的方法类型、选定的操作类型以及配置的方法代码,得到对实体模型配置的新增实体方法。
在其中一个实施例中,代码文件包括各系统层的业务代码以及各系统层的业务代码的调用关系;处理器执行计算机程序时还执行以下步骤:
调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的业务代码。
在另一个实施例中,处理器执行计算机程序时还执行以下步骤:
通过代码开发工具获取对业务代码的修改指令;
根据修改指令修改业务代码。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种软件代码生成方法,所述方法包括:
获取待开发软件的数据库信息;
根据所述数据库信息将数据表导入代码模板引擎生成实体模型的元数据;
获取在所述代码模板引擎的方法编辑页面对所述实体模型配置的新增实体方法;
获取在所述代码模板引擎中选定的代码模板;
在所述代码模板引擎中,从所述实体模型中拉取对应的元数据,填充到所述代码模板以及所述新增实体方法中,生成所述待开发软件的代码文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据库信息将数据表导入代码模板引擎生成实体模型的元数据,包括:
根据所述数据库信息,加载数据表;
解析所述数据表,得到业务实体、业务属性、业务方法和业务关系;
将所述业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
3.根据权利要求1所述的方法,其特征在于,所述获取在所述代码模板引擎对所述实体模型配置的新增实体方法,包括:
获取在所述代码模板引擎中从设定的方法类型中选定的方法类型;
获取在所述代码模板引擎中从设定的操作类型中选定的操作类型;
获取在所述代码模板引擎中配置的方法代码;
根据所述选定的方法类型、所述选定的操作类型以及配置的方法代码,得到对所述实体模型配置的新增实体方法。
4.根据权利要求1所述的方法,其特征在于,所述代码文件包括各系统层的业务代码以及各系统层的业务代码的调用关系;
在所述根据所述新增实体方法以及所述实体模型的元数据,通过所述代码模板引擎生成所述待开发软件的代码文件之后,还包括:调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的所述业务代码。
5.根据权利要求4所述的方法,其特征在于,在调用代码开发工具,根据各系统层的业务代码的调用关系,加载各系统层的所述业务代码之后,还包括:
通过所述代码开发工具获取对所述业务代码的修改指令;
根据所述修改指令修改所述业务代码。
6.一种软件代码生成装置,其特征在于,所述装置包括:
数据库信息获取模块,用于获取待开发软件的数据库信息;
元数据获取模块,用于根据所述数据库信息将数据表导入代码模板引擎生成实体模型的元数据;
新增模块,用于获取在所述代码模板引擎的方法编辑页面对所述实体模型配置的新增实体方法;
生成模块,用于获取在所述代码模板引擎中选定的代码模板;在所述代码模板引擎中,从所述实体模型中拉取对应的元数据,填充到所述代码模板以及所述新增实体方法中,生成所述待开发软件的代码文件。
7.根据权利要求6所述的装置,其特征在于,所述元数据获取模块,包括:
加载模块,用于根据所述数据库信息,加载数据表;
解析模块,用于解析所述数据表,得到业务实体、业务属性、业务方法和业务关系;
定义模块,用于将所述业务实体、业务属性、业务方法和业务关系定义到代码模板引擎中生成实体模型的元数据。
8.根据权利要求6所述的装置,其特征在于,所述新增模块,用于获取在所述代码模板引擎中从设定的方法类型中选定的方法类型;获取在所述代码模板引擎中从设定的操作类型中选定的操作类型;获取在所述代码模板引擎中配置的方法代码;根据所述选定的方法类型、所述选定的操作类型以及配置的方法代码,得到对所述实体模型配置的新增实体方法。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN201911281925.7A 2019-12-13 2019-12-13 软件代码生成方法、装置、计算机设备和存储介质 Active CN111061475B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911281925.7A CN111061475B (zh) 2019-12-13 2019-12-13 软件代码生成方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911281925.7A CN111061475B (zh) 2019-12-13 2019-12-13 软件代码生成方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111061475A CN111061475A (zh) 2020-04-24
CN111061475B true CN111061475B (zh) 2023-12-12

Family

ID=70302023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911281925.7A Active CN111061475B (zh) 2019-12-13 2019-12-13 软件代码生成方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111061475B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966340A (zh) * 2020-08-20 2020-11-20 杭州安恒信息技术股份有限公司 一种基于Mybatis框架的代码生成方法、装置、设备及介质
CN112114794B (zh) * 2020-09-27 2021-11-09 深圳天玑数据有限公司 网站应用程序自动生成方法、装置和计算机存储介质
CN112463145A (zh) * 2020-12-04 2021-03-09 上海路人王信息科技有限公司 代码生成方法、终端设备及计算机可读存储介质
CN112631568A (zh) * 2020-12-30 2021-04-09 深圳康佳电子科技有限公司 一种代码生成方法、装置、智能终端及存储介质
CN112631576B (zh) * 2020-12-31 2022-09-27 杭州天宽科技有限公司 Java通用代码生成优化方法和系统
CN113296789A (zh) * 2021-06-16 2021-08-24 北京有竹居网络技术有限公司 一种代码生成方法、装置、设备以及存储介质
CN113608726B (zh) * 2021-07-30 2023-08-11 三一专用汽车有限责任公司 代码生成方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446099A (zh) * 2010-12-13 2012-05-09 微软公司 工作软件中的用户界面实体模型的反向工程
CN103593197A (zh) * 2013-11-26 2014-02-19 国家电网公司 一种代码生成方法和装置
CN105677324A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成实体类代码的方法
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
CN108984156A (zh) * 2018-07-06 2018-12-11 合肥明高软件技术有限公司 一种基于模板的免代码开发的软件自动生成方法及系统
CN109032662A (zh) * 2018-06-19 2018-12-18 上海陆家嘴国际金融资产交易市场股份有限公司 代码文件生成方法、装置、计算机设备和存储介质
CN109885291A (zh) * 2019-01-25 2019-06-14 深圳市元征科技股份有限公司 一种代码自动生成方法及代码自动生成器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973640B2 (en) * 2000-10-04 2005-12-06 Bea Systems, Inc. System and method for computer code generation
US7917890B2 (en) * 2006-08-31 2011-03-29 Jon Barcellona Enterprise-scale application development framework utilizing code generation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446099A (zh) * 2010-12-13 2012-05-09 微软公司 工作软件中的用户界面实体模型的反向工程
CN103593197A (zh) * 2013-11-26 2014-02-19 国家电网公司 一种代码生成方法和装置
CN105677324A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成实体类代码的方法
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
CN109032662A (zh) * 2018-06-19 2018-12-18 上海陆家嘴国际金融资产交易市场股份有限公司 代码文件生成方法、装置、计算机设备和存储介质
CN108984156A (zh) * 2018-07-06 2018-12-11 合肥明高软件技术有限公司 一种基于模板的免代码开发的软件自动生成方法及系统
CN109885291A (zh) * 2019-01-25 2019-06-14 深圳市元征科技股份有限公司 一种代码自动生成方法及代码自动生成器

Also Published As

Publication number Publication date
CN111061475A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN111061475B (zh) 软件代码生成方法、装置、计算机设备和存储介质
Langer et al. EMF Profiles: A Lightweight Extension Approach for EMF Models.
CN107644286B (zh) 工作流处理方法及装置
CN108388622B (zh) Api接口动态生成方法、装置、计算机设备及存储介质
US8881127B2 (en) Systems and methods to automatically generate classes from API source code
CN106886406A (zh) 开发代码或文档的生成方法和装置
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
CN104794048A (zh) 一种ui自动化测试方法和系统
CN106557307B (zh) 业务数据的处理方法及处理系统
CN114115844A (zh) 页面生成方法、装置、计算机设备和存储介质
CN111126019A (zh) 基于模式定制的报表生成方法、装置和电子设备
CN111324716A (zh) 指标数据获取方法、装置、计算机设备和存储介质
CN109684486A (zh) 元数据模型的构建方法、装置、计算机设备和存储介质
US8732655B2 (en) Systems and methods for metamodel transformation
US9330372B2 (en) Generating an improved development infrastructure
CN110727777A (zh) 知识图谱的管理方法、装置、计算机设备和存储介质
CN112785248B (zh) 人力资源数据跨组织交互方法、装置、设备和存储介质
CN115993966B (zh) 应用开发系统及方法
CN117078181A (zh) 一种电力交易业务数据处理流程自动化方法与系统
CN111984659A (zh) 数据更新方法、装置、计算机设备和存储介质
CN114895875B (zh) 一种零代码可视化信息系统元数据的生产应用方法及系统
CN115543428A (zh) 一种基于策略模板的模拟数据生成方法和装置
CN102779092B (zh) 引用检查系统和引用检查方法
CN108845857A (zh) 一种基于云平台的图标管理方法和装置
CN109871214B (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
CP03 Change of name, title or address

Address after: 510000 No. 11 Kexiang Road, Science City, Luogang District, Guangzhou City, Guangdong Province

Patentee after: CHINA SOUTHERN POWER GRID Co.,Ltd.

Country or region after: China

Patentee after: Southern Power Grid Digital Grid Research Institute Co.,Ltd.

Address before: 510000 No. 11 Kexiang Road, Science City, Luogang District, Guangzhou City, Guangdong Province

Patentee before: CHINA SOUTHERN POWER GRID Co.,Ltd.

Country or region before: China

Patentee before: Southern Power Grid Digital Grid Research Institute Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20240325

Address after: Full Floor 14, Unit 3, Building 2, No. 11, Middle Spectra Road, Huangpu District, Guangzhou, Guangdong 510700

Patentee after: China Southern Power Grid Digital Grid Technology (Guangdong) Co.,Ltd.

Country or region after: China

Address before: 510000 No. 11 Kexiang Road, Science City, Luogang District, Guangzhou City, Guangdong Province

Patentee before: CHINA SOUTHERN POWER GRID Co.,Ltd.

Country or region before: China

Patentee before: Southern Power Grid Digital Grid Research Institute Co.,Ltd.