CN106293664A - 代码生成方法及装置 - Google Patents
代码生成方法及装置 Download PDFInfo
- Publication number
- CN106293664A CN106293664A CN201510277985.7A CN201510277985A CN106293664A CN 106293664 A CN106293664 A CN 106293664A CN 201510277985 A CN201510277985 A CN 201510277985A CN 106293664 A CN106293664 A CN 106293664A
- Authority
- CN
- China
- Prior art keywords
- code
- template
- preview
- structure information
- list structure
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种代码生成方法及装置,其中方法包括:对物理数据模型PDM文件进行语义分析,获得PDM文件对象;将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;将表目录树显示在可视化界面中;在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;在确认预览代码正确之后,生成与预览代码相对应的前后台代码。本发明可以提高软件程序开发效率、降低开发成本、缩短开发周期。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及代码生成方法及装置。
背景技术
目前众多应用软件的开发是以数据为中心,对其进行增、删、改、查,进而实现绝大部分业务处理的功能。通常在一个应用程序的开发过程中,对数据表编写实体类和增、删、改、查方法时,都会存在着一些相同的操作过程和操作方法,由于目前代码的编写主要依靠程序员手工进行,势必需要大量的人力和时间进行重复性的代码编写工作。同时,程序员的编码风格还会有所区别,不利于程序的后期维护。
现在虽然已有一些代码生成方法和***,但主要存在以下几个问题:
1、通常是针对某一种特定的***开发的,不具有通用性,也不可避免代码生成过程中的重复性工作。且现有的代码生成器一般只涉及程序开发过程中的一部分,如Java代码、专门的DAO或脚本生成器,没有一种前台到后端可完全定制的代码生成平台。
2、代码生成器的输入一般是详细设计文档,多为Xml、Excel等格式,需要定义较为精确的格式,比如几行几列,每一行列表示的含义等,当修改其中一部分定义时,往往会涉及较大范围的改动。特别地,由于***间存在或多或少的差异性,将一套***的定义应用于另一套***时,时常会出现兼容性、一致性等方面的问题,极大地限制了代码生成器的广泛应用。
3、输入到输出的过程表现为一个黑箱模型,只有代码生成后才能验证模板的正确性与适用性,若生成的代码存在问题,则需要重新定义或修改模板,并重复整个过程,无法实现生成过程的可视化、代码的实时预览、***参数的动态调整以及个性化代码模板的灵活配置等功能。
综上,现有的代码生成方法和***在广泛应用方面还存在较大的局限性,有待进一步改进和提高。
发明内容
本发明实施例提供一种代码生成方法,用以解决现有代码生成方法缺乏通用性、生成过程无法可视化的问题,该方法包括:
对PDM(Physical Data Model,物理数据模型)文件进行语义分析,获得PDM文件对象;
将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;
将表目录树显示在可视化界面中;
在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;
对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;
将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;
在确认预览代码正确之后,生成与预览代码相对应的前后台代码。
一个实施例中,对PDM文件进行语义分析,包括:
解析PDM文件中的表名、字段名、字段属性及额外语义之一或组合。
一个实施例中,对所确定的表对象进行表结构信息配置,包括:
对所确定的表对象进行字段属性、子表和外键表的配置。
一个实施例中,字段属性包括:
字段顺序、数据类型、长度、精度、是否为空、是否为SQL(Structured Query Language,结构化查询语言)条件及对应前台界面控件的选择之一或组合。
一个实施例中,所述的代码生成方法还包括:
若预览代码存在问题,则修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合,重新生成预览代码。
本发明实施例还提供一种代码生成装置,用以解决现有代码生成方法缺乏通用性、生成过程无法可视化的问题,该装置包括:
表结构信息解析模块,用于对PDM文件进行语义分析,获得PDM文件对象;将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;将表目录树显示在可视化界面中;
代码生成引擎,用于在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;
代码预览模块,用于将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;
代码输出模块,用于在确认预览代码正确之后,生成与预览代码相对应的前后台代码。
一个实施例中,表结构信息解析模块具体用于:
在对PDM文件进行语义分析时,解析PDM文件中的表名、字段名、字段属性及额外语义之一或组合。
一个实施例中,代码生成引擎具体用于:
在对所确定的表对象进行表结构信息配置时,对表对象进行字段属性、子表和外键表的配置。
一个实施例中,代码生成引擎具体用于:
在对表对象进行字段属性的配置时,对字段顺序、数据类型、长度、精度、是否为空、是否为SQL条件及对应前台界面控件的选择之一或组合进行配置。
一个实施例中,代码生成引擎还用于:
在预览代码存在问题时,修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合;
代码预览模块还用于:在代码生成引擎修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合后,重新生成预览代码。
本发明实施例中,对PDM文件进行语义分析,获得PDM文件对象;将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;将表目录树显示在可视化界面中;在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;在确认预览代码正确之后,生成与预览代码相对应的前后台代码;可以解决现有代码生成方法缺乏通用性、生成过程无法可视化的问题,提高软件程序开发效率、降低开发成本、缩短开发周期。
进一步的,若预览代码存在问题,则修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合,重新生成预览代码;可以解决现有代码生成方法***参数、代码模板无法动态调整的问题,进一步提高软件程序开发效率、降低开发成本、缩短开发周期。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中代码生成方法的示意图;
图2为本发明实施例中可视化界面的实例图;
图3为本发明实施例中在可视化界面中进行字段属性配置的示例图;
图4为本发明实施例中在可视化界面中进行外键表配置的示例图;
图5为本发明实施例中在可视化界面中进行自定义模板配置的示例图;
图6为本发明实施例中可视化界面中自定义模板选择对话框的示例图;
图7为本发明实施例中可视化界面中自定义模板文件编辑界面的示例图;
图8为本发明实施例中可视化界面中变量设置界面的示例图;
图9为本发明实施例中可视化界面中数据类型设置界面的示例图;
图10为本发明实施例中可视化界面中数据库默认对照类型设置界面的示例图;
图11为本发明实施例中可视化界面中代码预览及生成界面的示例图;
图12为本发明实施例中可视化界面中预览代码示例图;
图13为本发明实施例中可视化界面中文件生成日志示例图;
图14为本发明实施例中代码生成装置的示意图;
图15为本发明实施例中代码生成装置的应用示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
鉴于现有技术的不足,本发明实施例提供一种代码生成方法。本发明实施例的代码生成方法是基于语义分析的代码自动生成方法,旨在解决现有代码生成方法缺乏通用性、生成过程无法可视化的问题,从而提高软件程序开发效率、降低开发成本、缩短开发周期。
图1为本发明实施例中代码生成方法的示意图。如图1所示,本发明实施例中代码生成方法可以包括:
步骤101、对PDM文件进行语义分析,获得PDM文件对象;
步骤102、将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;
步骤103、将表目录树显示在可视化界面中;
步骤104、在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;
步骤105、对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;
步骤106、将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;
步骤107、在确认预览代码正确之后,生成与预览代码相对应的前后台代码。
由图1所示流程可以得知,本发明实施例将代码自动生成的输入统一为PDM文件,能够提供***初始设计所需要的基础元素,以及相关元素之间的关系,使得***间无改动直接复用成为可能;同时,生成过程的可视化、生成代码的实时预览以及个性化代码模板(自定义模板)的灵活配置等功能,均使得代码生成方法的通用性和普遍适用性得到较大的提升,大大降低开发成本,缩短开发周期,提高产品质量。
具体实施时,先对PDM文件进行语义分析,获得PDM文件对象,将PDM文件对象转换为表目录树,将表目录树显示在可视化界面中。其中,对输入的PDM文件进行语义分析,例如可以包括:解析PDM文件中的表名、字段名、字段属性(类型、长度等)、额外语义(字典值)等之一或组合。表目录树包含与PDM文件对象对应的表对象。表目录树可以支持模糊搜索。图2示出了本发明实施例中可视化界面的一个实例图。
将表目录树显示在可视化界面之后,在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置。其中对所确定的表对象进行表结构信息配置,可以包括:对所确定的表对象进行字段属性、子表和外键表的配置。
下面举一例说明进行表结构信息配置。本例中,可视化界面中包含多个菜单,在可视化界面中选中需要生成代码的表对象后,字段等信息会显示在可视化界面的一菜单例如“表选择区”菜单内,在该菜单中可设置字段属性、子表、外键表。
字段属性的修改包括:字段顺序、数据类型、长度、精度、是否为空、是否为SQL条件、前台界面控件的选择等之一或组合,图3示出了本发明实施例中在可视化界面中进行字段属性配置的示例图;
子表设置:在“表选择区”菜单tab页中子表区域可根据需要点击“增加子表”选项和“删除子表”选项来增加和删除子表,点击“增加子表”选项会弹出表选择对话框,在对话框中可以选择子表,双击子表后,列表自动显示子表信息;
外键表设置:在“表选择区”菜单tab页列表中的外键对应表列可以修改,点击该单元格会弹出表选择对话框,图4示出了本发明实施例中在可视化界面中进行外键表配置的示例图。在对话框中可以选择修改字段对应的外键表,双击表节点后,该单元格会自动设置成选择表的表名。
具体实施时,还需对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置。例如可以进行***配置,主要包括配置自定义模板,对***参数和自定义参数进行配置,如配置变量、数据类型设置等。还可以在可视化界面的一菜单例如“代码生成区”菜单中选择所需生成的***代码模板。
下面举一例说明进行***配置,主要包括自定义模板、变量、数据类型设置等。
图5为本例中在可视化界面中进行自定义模板配置的示例图。在可视化界面左上角菜单区点击***配置-->模板配置菜单,弹出模板配置界面,如图5所示。点击“增加模板”选项,模板列表会自动增加一行,分别输入模板名称,点击模板文件列则弹出选择模板文件对话框,图6为本例中可视化界面中自定义模板选择对话框的示例图。选择编写好的模板后,模板的文件名会自动设置到模板名称列,再输入“输出文件根目录”、“文件后缀”值;增加模板,或修改模板后点击“保存”选项,可以保存该模板;点击“编辑”选项,弹出选择行的模板文件内容编辑窗口,如图7所示为本例中可视化界面中自定义模板文件编辑界面的示例图,可以编辑模板内容,点击编辑窗口下方的“保存”选项则可以保存修改内容,点击编辑窗口下方的“取消”选项则操作取消;点击“删除”选项,则可以删除选择行的模板信息。
对***参数和自定义参数进行配置时,变量配置主要设置输出文件根目录、表名前缀、变量设置。图8为本例中可视化界面中变量设置界面的示例图,如图8所示,点击“增加变量”选择变量列表会自动增加一行,输入变量名称、类型、变量值,点击“保存”选项则可保存设置变量,实现参数变量的动态实时设定和调整。
对***参数和自定义参数进行配置时,数据类型设置主要是设置数据类型和编程语言类型对应关系,生成代码时根据类型对照设置将数据类型转化成编程语言程序类型。图9为本例中可视化界面中数据类型设置界面的示例图,如图9所示,点击“增加类型”选项自动增加一行数据类型设置,输入数据类型、编程语言程序类型、设置默认类型;设置默认类型有以下几个数据库类型对照,如图10所示为可视化界面中数据库默认对照类型设置界面的示例图,选择数据库后自动设置成该数据库默认对照类型。
实施例中,在“代码生成区”菜单中选择所需生成的***代码模板时,可视化界面中可设有一“模板名称”菜单,该菜单可列为下拉框,选择一个模板后,模板文件、输出文件根目录、输出包、后缀,会自动根据模板设置里的值进行联动。
具体实施时,将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,可生成预览代码。例如在可视化界面中选择一个或多个模板,点击“生成预览”选项,根据勾选的模板,生成预览代码的各tab页签,如图11所示的代码预览及生成界面的示例图所示。可方便地预览生成的代码,一个预览代码示例参见图12的预览代码示例图。
在确认预览代码正确之后,生成与预览代码相对应的前后台代码。若预览代码存在问题,则修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合,重新生成预览代码。例如,若某个代码文件或某段代码存在问题,则实时修改对应的模板,并重新生成该模板的预览代码。如果某个文件生成有问题,可以查看详细的生成日志,如图13所示的文件生成日志示例图所示。根据文件生成日志中的错误提示,修改对应的模板并重新生成预览。
确认代码无问题后,即可生成对应的前后台代码。例如,可以在可视化界面中选择一个或多个模板,点击“生成文件”选项,根据勾选的模板,自动生成文件,包括Action层、Service层、DAO层、VO层、前台页面(Mxml、ActionScript)等代码,同时在xml中注册bean和action信息。如果勾选了“是否生成子表”选项,子表也会按照模板一同生成,生成文件的规则如附表1所示。
表1 代码自动生成方法的文件生成规则表
文件属性 | 值 | 备注 |
文件名 | 选择表的表名转化成类名+后缀名 | |
文件绝对路径 | 生成文件根目录+包名 | |
文件内容 | 按模板生成 |
实施例中,可以通过JunJava、FreeMarker、velocity等Java模板引擎完成类似代码的本地创建,生成的代码为文件,非常规范和标准,并且有代码高亮显示等效果。这些代码按照标准的生成格式进行生成,开发人员几乎可以完全拷贝实际需要的大部分代码,进而将时间用于编写业务逻辑,从而避免了很多重复操作。
由上述实施例可知,本发明实施例提供的代码生成方法,可以实现各类***代码的自动生成,结合可视化界面和灵活配置的自定义模板,进而有效避免代码开发过程中重复性工作,并使得生成过程可视化、简化,提高软件程序开发效率。
基于同一发明构思,本发明实施例中还提供了一种代码生成装置,如下面的实施例所述。由于代码生成装置解决问题的原理与代码生成方法相似,因此代码生成装置的实施可以参见代码生成方法的实施,重复之处不再赘述。
图14为本发明实施例中代码生成装置的示意图。如图14所示,本发明实施例中代码生成装置可以包括:
表结构信息解析模块141,用于对PDM文件进行语义分析,获得PDM文件对象;将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;将表目录树显示在可视化界面中;
代码生成引擎142,用于在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;
代码预览模块143,用于将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;
代码输出模块144,用于在确认预览代码正确之后,生成与预览代码相对应的前后台代码。
具体实施时,表结构信息解析模块141具体可以用于:
在对PDM文件进行语义分析时,解析PDM文件中的表名、字段名、字段属性及额外语义之一或组合。
具体实施时,代码生成引擎142具体可以用于:
在对所确定的表对象进行表结构信息配置时,对表对象进行字段属性、子表和外键表的配置。
具体实施时,代码生成引擎142具体可以用于:
在对表对象进行字段属性的配置时,对字段顺序、数据类型、长度、精度、是否为空、是否为SQL条件及对应前台界面控件的选择之一或组合进行配置。
具体实施时,代码生成引擎142还可以用于:
在预览代码存在问题时,修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合;
代码预览模块143还可以用于:在代码生成引擎修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合后,重新生成预览代码。
图15为本发明实施例中代码生成装置的应用示例图。如图15所示,应用该代码生成装置自动生成代码的过程可以包括:
S1、表结构信息解析模块对输入的PDM文件进行语义分析,获得PDM文件对象;将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;将表目录树显示在可视化界面中;
S2、代码生成引擎在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置,包括进行表配置:字段属性、子表和外键表配置;
S3、代码生成引擎在可视化界面中进行***配置,包括进行自定义模板配置,***参数和自定义参数配置(包括变量配置和数据类型配置);
S4、代码生成引擎在模板库中进行***模板配置;
S5、代码预览模块将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;
S6、代码生成引擎在预览代码存在问题时,修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合;代码预览模块重新生成预览代码;
S7、代码输出模块在确认预览代码正确之后,生成与预览代码相对应的前后台代码,例如输出As文件、Xml文件、java文件等。
综上所述,本发明实施例中,对PDM文件进行语义分析,获得PDM文件对象;将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;将表目录树显示在可视化界面中;在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;在确认预览代码正确之后,生成与预览代码相对应的前后台代码,可以解决现有代码生成方法缺乏通用性、生成过程无法可视化的问题,提高软件程序开发效率、降低开发成本、缩短开发周期。
进一步的,若预览代码存在问题,则修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合,重新生成预览代码;可以解决现有代码生成方法***参数、代码模板无法动态调整的问题,进一步提高软件程序开发效率、降低开发成本、缩短开发周期。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种代码生成方法,其特征在于,包括:
对物理数据模型PDM文件进行语义分析,获得PDM文件对象;
将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;
将表目录树显示在可视化界面中;
在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;
对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;
将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;
在确认预览代码正确之后,生成与预览代码相对应的前后台代码。
2.如权利要求1所述的方法,其特征在于,对PDM文件进行语义分析,包括:
解析PDM文件中的表名、字段名、字段属性及额外语义之一或组合。
3.如权利要求1所述的方法,其特征在于,对所确定的表对象进行表结构信息配置,包括:
对所确定的表对象进行字段属性、子表和外键表的配置。
4.如权利要求3所述的方法,其特征在于,字段属性包括:
字段顺序、数据类型、长度、精度、是否为空、是否为SQL条件及对应前台界面控件的选择之一或组合。
5.如权利要求1至4任一项所述的方法,其特征在于,还包括:
若预览代码存在问题,则修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合,重新生成预览代码。
6.一种代码生成装置,其特征在于,包括:
表结构信息解析模块,用于对PDM文件进行语义分析,获得PDM文件对象;将PDM文件对象转换为表目录树,其中,表目录树包含与PDM文件对象对应的表对象;将表目录树显示在可视化界面中;
代码生成引擎,用于在可视化界面中确定需要生成代码的表对象,对所确定的表对象进行表结构信息配置;对***参数和***代码模板进行配置,对自定义参数和自定义模板进行配置;
代码预览模块,用于将表结构信息、***参数和自定义参数,填充至由***代码模板和自定义模板构成的模板群中,生成预览代码;
代码输出模块,用于在确认预览代码正确之后,生成与预览代码相对应的前后台代码。
7.如权利要求6所述的装置,其特征在于,表结构信息解析模块具体用于:
在对PDM文件进行语义分析时,解析PDM文件中的表名、字段名、字段属性及额外语义之一或组合。
8.如权利要求6所述的装置,其特征在于,代码生成引擎具体用于:
在对所确定的表对象进行表结构信息配置时,对表对象进行字段属性、子表和外键表的配置。
9.如权利要求8所述的装置,其特征在于,代码生成引擎具体用于:
在对表对象进行字段属性的配置时,对字段顺序、数据类型、长度、精度、是否为空、是否为结构化查询语言SQL条件及对应前台界面控件的选择之一或组合进行配置。
10.如权利要求6至9任一项所述的装置,其特征在于,代码生成引擎还用于:
在预览代码存在问题时,修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合;
代码预览模块还用于:在代码生成引擎修改相应的表结构信息、***参数、自定义参数、***代码模板和自定义模板之一或组合后,重新生成预览代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510277985.7A CN106293664A (zh) | 2015-05-27 | 2015-05-27 | 代码生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510277985.7A CN106293664A (zh) | 2015-05-27 | 2015-05-27 | 代码生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106293664A true CN106293664A (zh) | 2017-01-04 |
Family
ID=57635133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510277985.7A Pending CN106293664A (zh) | 2015-05-27 | 2015-05-27 | 代码生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293664A (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357588A (zh) * | 2017-07-19 | 2017-11-17 | 万帮充电设备有限公司 | 目标代码生成方法及装置 |
CN107368346A (zh) * | 2017-07-06 | 2017-11-21 | 万惠投资管理有限公司 | 一种基于元数据和脚本引擎的代码生成方法及装置 |
CN107657150A (zh) * | 2017-09-07 | 2018-02-02 | 北京荣之联科技股份有限公司 | 一种可视化生物信息分析工具生成方法和装置 |
CN108804133A (zh) * | 2018-06-12 | 2018-11-13 | 深圳华讯网络科技有限公司 | 虚拟资源的获取方法、***、计算机设备和存储介质 |
CN109408057A (zh) * | 2018-10-23 | 2019-03-01 | 网易传媒科技(北京)有限公司 | 自动生成代码的方法、装置、介质和计算设备 |
CN109408043A (zh) * | 2018-10-19 | 2019-03-01 | 中国银行股份有限公司 | 一种程序生成方法及装置 |
CN109508182A (zh) * | 2018-09-18 | 2019-03-22 | 广州虎牙信息科技有限公司 | 快速生成指令的方法、服务器以及计算机存储介质 |
CN109542418A (zh) * | 2018-11-20 | 2019-03-29 | 北京千丁互联科技有限公司 | Service代码生成方法及计算机终端 |
CN109614095A (zh) * | 2018-12-07 | 2019-04-12 | 北京金山云网络技术有限公司 | 用户自定义组件的方法、平台代码的生成方法及装置 |
CN109739856A (zh) * | 2018-12-28 | 2019-05-10 | 第四范式(北京)技术有限公司 | 用于建立数据表之间的关系的方法及*** |
CN109799985A (zh) * | 2019-01-23 | 2019-05-24 | 中国银行股份有限公司 | 前端代码生成方法及装置、存储介质及电子设备 |
CN109976732A (zh) * | 2017-12-28 | 2019-07-05 | 重庆南华中天信息技术有限公司 | 可将相同编程模型映射成不同语言代码程序的方法及*** |
WO2019134480A1 (zh) * | 2018-01-05 | 2019-07-11 | 中兴通讯股份有限公司 | 基于结构化查询语言sql的开发方法、设备及存储介质 |
CN110018822A (zh) * | 2019-04-16 | 2019-07-16 | 山东浪潮通软信息科技有限公司 | 一种自动生成微服务功能的方法及*** |
CN110045982A (zh) * | 2019-03-28 | 2019-07-23 | 宋子杰 | 一种基于源代码聚合的嵌入式***配置方法 |
CN110134427A (zh) * | 2018-02-08 | 2019-08-16 | 北京京东尚科信息技术有限公司 | 一种生成代码文件的方法和装置 |
CN110221828A (zh) * | 2019-05-20 | 2019-09-10 | 一汽轿车股份有限公司 | 一种汽车电子控制单元通讯程序的可视化编程方法 |
CN110489106A (zh) * | 2019-07-22 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 一种项目初始化代码的生成方法、装置、介质和电子设备 |
CN110750263A (zh) * | 2019-10-15 | 2020-02-04 | 广州维思车用部件有限公司 | 一种车用仪表开发数据生成方法及装置 |
CN111142861A (zh) * | 2019-12-17 | 2020-05-12 | 西安电子科技大学 | 结构化综控***集成方法及装置 |
CN111427567A (zh) * | 2020-03-20 | 2020-07-17 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其***和设备 |
CN112416326A (zh) * | 2020-11-23 | 2021-02-26 | 中国工商银行股份有限公司 | 代码生成方法及装置 |
CN112631576A (zh) * | 2020-12-31 | 2021-04-09 | 杭州天宽科技有限公司 | Java通用代码生成优化方法和*** |
CN112667659A (zh) * | 2020-12-23 | 2021-04-16 | 平安普惠企业管理有限公司 | 特征加工方法及相关设备 |
CN112799638A (zh) * | 2021-01-12 | 2021-05-14 | 杨飞 | 无侵入式快速开发方法、平台、终端及存储介质 |
CN113238752A (zh) * | 2021-05-17 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 代码生成方法、装置、电子设备及存储介质 |
CN113760352A (zh) * | 2021-07-01 | 2021-12-07 | 北京房江湖科技有限公司 | 代码文件生成方法、电子设备、存储介质及程序产品 |
CN112799638B (zh) * | 2021-01-12 | 2024-07-02 | 杨飞 | 无侵入式快速开发方法、平台、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819530A (zh) * | 2010-04-30 | 2010-09-01 | 山东中创软件工程股份有限公司 | 一种程序对象生成方法、装置及计算机 |
CN102508669A (zh) * | 2011-11-14 | 2012-06-20 | 浙江鸿程计算机***有限公司 | 一种程序代码自动生成方法 |
CN102779037A (zh) * | 2012-05-22 | 2012-11-14 | 杭州斯凯网络科技有限公司 | 一种自动生成与统一维护java项目的可视化编程方法 |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN104063764A (zh) * | 2014-07-01 | 2014-09-24 | 成都市卓睿科技有限公司 | 可视化生成项目代码的装置及方法 |
-
2015
- 2015-05-27 CN CN201510277985.7A patent/CN106293664A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819530A (zh) * | 2010-04-30 | 2010-09-01 | 山东中创软件工程股份有限公司 | 一种程序对象生成方法、装置及计算机 |
CN102508669A (zh) * | 2011-11-14 | 2012-06-20 | 浙江鸿程计算机***有限公司 | 一种程序代码自动生成方法 |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN102779037A (zh) * | 2012-05-22 | 2012-11-14 | 杭州斯凯网络科技有限公司 | 一种自动生成与统一维护java项目的可视化编程方法 |
CN104063764A (zh) * | 2014-07-01 | 2014-09-24 | 成都市卓睿科技有限公司 | 可视化生成项目代码的装置及方法 |
Non-Patent Citations (2)
Title |
---|
余文芳 等: "《计算机应用快速提高》", 30 September 2007, 北京邮电大学出版社 * |
贾铁军 主编: "《软件工程技术及应用》", 31 August 2009, 机械工业出版社 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368346A (zh) * | 2017-07-06 | 2017-11-21 | 万惠投资管理有限公司 | 一种基于元数据和脚本引擎的代码生成方法及装置 |
CN107357588B (zh) * | 2017-07-19 | 2020-08-14 | 万帮充电设备有限公司 | 目标代码生成方法及装置 |
CN107357588A (zh) * | 2017-07-19 | 2017-11-17 | 万帮充电设备有限公司 | 目标代码生成方法及装置 |
CN107657150A (zh) * | 2017-09-07 | 2018-02-02 | 北京荣之联科技股份有限公司 | 一种可视化生物信息分析工具生成方法和装置 |
CN109976732A (zh) * | 2017-12-28 | 2019-07-05 | 重庆南华中天信息技术有限公司 | 可将相同编程模型映射成不同语言代码程序的方法及*** |
WO2019134480A1 (zh) * | 2018-01-05 | 2019-07-11 | 中兴通讯股份有限公司 | 基于结构化查询语言sql的开发方法、设备及存储介质 |
CN110134427A (zh) * | 2018-02-08 | 2019-08-16 | 北京京东尚科信息技术有限公司 | 一种生成代码文件的方法和装置 |
CN108804133A (zh) * | 2018-06-12 | 2018-11-13 | 深圳华讯网络科技有限公司 | 虚拟资源的获取方法、***、计算机设备和存储介质 |
CN108804133B (zh) * | 2018-06-12 | 2022-04-08 | 深圳华讯网络科技有限公司 | 虚拟资源的获取方法、***、计算机设备和存储介质 |
CN109508182A (zh) * | 2018-09-18 | 2019-03-22 | 广州虎牙信息科技有限公司 | 快速生成指令的方法、服务器以及计算机存储介质 |
CN109408043A (zh) * | 2018-10-19 | 2019-03-01 | 中国银行股份有限公司 | 一种程序生成方法及装置 |
CN109408057A (zh) * | 2018-10-23 | 2019-03-01 | 网易传媒科技(北京)有限公司 | 自动生成代码的方法、装置、介质和计算设备 |
CN109542418A (zh) * | 2018-11-20 | 2019-03-29 | 北京千丁互联科技有限公司 | Service代码生成方法及计算机终端 |
CN109614095A (zh) * | 2018-12-07 | 2019-04-12 | 北京金山云网络技术有限公司 | 用户自定义组件的方法、平台代码的生成方法及装置 |
CN109739856A (zh) * | 2018-12-28 | 2019-05-10 | 第四范式(北京)技术有限公司 | 用于建立数据表之间的关系的方法及*** |
CN109799985A (zh) * | 2019-01-23 | 2019-05-24 | 中国银行股份有限公司 | 前端代码生成方法及装置、存储介质及电子设备 |
CN109799985B (zh) * | 2019-01-23 | 2022-06-03 | 中国银行股份有限公司 | 前端代码生成方法及装置、存储介质及电子设备 |
CN110045982A (zh) * | 2019-03-28 | 2019-07-23 | 宋子杰 | 一种基于源代码聚合的嵌入式***配置方法 |
CN110018822A (zh) * | 2019-04-16 | 2019-07-16 | 山东浪潮通软信息科技有限公司 | 一种自动生成微服务功能的方法及*** |
CN110221828A (zh) * | 2019-05-20 | 2019-09-10 | 一汽轿车股份有限公司 | 一种汽车电子控制单元通讯程序的可视化编程方法 |
CN110221828B (zh) * | 2019-05-20 | 2023-03-14 | 一汽奔腾轿车有限公司 | 一种汽车电子控制单元通讯程序的可视化编程方法 |
CN110489106A (zh) * | 2019-07-22 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 一种项目初始化代码的生成方法、装置、介质和电子设备 |
CN110750263B (zh) * | 2019-10-15 | 2024-01-23 | 广州维思车用部件有限公司 | 一种车用仪表开发数据生成方法及装置 |
CN110750263A (zh) * | 2019-10-15 | 2020-02-04 | 广州维思车用部件有限公司 | 一种车用仪表开发数据生成方法及装置 |
CN111142861A (zh) * | 2019-12-17 | 2020-05-12 | 西安电子科技大学 | 结构化综控***集成方法及装置 |
CN111427567A (zh) * | 2020-03-20 | 2020-07-17 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其***和设备 |
CN111427567B (zh) * | 2020-03-20 | 2023-08-18 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其***和设备 |
CN112416326A (zh) * | 2020-11-23 | 2021-02-26 | 中国工商银行股份有限公司 | 代码生成方法及装置 |
CN112667659A (zh) * | 2020-12-23 | 2021-04-16 | 平安普惠企业管理有限公司 | 特征加工方法及相关设备 |
CN112667659B (zh) * | 2020-12-23 | 2024-04-02 | 平安普惠企业管理有限公司 | 特征加工方法及相关设备 |
CN112631576A (zh) * | 2020-12-31 | 2021-04-09 | 杭州天宽科技有限公司 | Java通用代码生成优化方法和*** |
CN112799638A (zh) * | 2021-01-12 | 2021-05-14 | 杨飞 | 无侵入式快速开发方法、平台、终端及存储介质 |
CN112799638B (zh) * | 2021-01-12 | 2024-07-02 | 杨飞 | 无侵入式快速开发方法、平台、终端及存储介质 |
CN113238752A (zh) * | 2021-05-17 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 代码生成方法、装置、电子设备及存储介质 |
CN113760352A (zh) * | 2021-07-01 | 2021-12-07 | 北京房江湖科技有限公司 | 代码文件生成方法、电子设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106293664A (zh) | 代码生成方法及装置 | |
CN107273117B (zh) | 一种编程友好型的敏捷代码自动生成*** | |
CN107273286B (zh) | 针对任务应用的场景自动化测试平台及方法 | |
CN107291450B (zh) | 一种编程友好型的敏捷代码自动生成方法 | |
CN103309904B (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
US9021440B1 (en) | System and method for automated test script generation | |
CN106648662B (zh) | 基于工程造价计算描述语言bcl的报表生成装置及生成方法 | |
CN103383645B (zh) | 代码生成方法及*** | |
US9015685B2 (en) | Code analysis for simulation efficiency improvement | |
CN110955410B (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN104123227A (zh) | 一种自动生成测试用例的方法 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
CN103019928A (zh) | 一种自动化测试方法和*** | |
CN104407863A (zh) | 抽象控件模型编程装置和方法 | |
CN111078555B (zh) | 一种测试文件的生成方法、***、服务器和存储介质 | |
CN103176778B (zh) | 网页开发方法和装置 | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发***及其方法 | |
CN105117215A (zh) | 汽车功能的开发方法及装置 | |
CN104133676A (zh) | 一种基于脚本的功能执行方法和设备 | |
CN104267962A (zh) | 一种基于描述的界面ui控件配置方法 | |
CN104391731A (zh) | 一种基于c#的与数据类型无关的编辑方法 | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
CN104063231B (zh) | 一种基于hit‑tena的试验资源快速接入方法 | |
CN113419969B (zh) | 基于浏览器插件的界面自动化成功率保障方法 | |
US11029934B2 (en) | Method and system for updating legacy software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |