CN103135976B - 代码自动生成方法及装置 - Google Patents
代码自动生成方法及装置 Download PDFInfo
- Publication number
- CN103135976B CN103135976B CN201110391484.3A CN201110391484A CN103135976B CN 103135976 B CN103135976 B CN 103135976B CN 201110391484 A CN201110391484 A CN 201110391484A CN 103135976 B CN103135976 B CN 103135976B
- Authority
- CN
- China
- Prior art keywords
- code
- template
- list structure
- programme
- generated
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种代码自动生成方法及装置,该方法包括:获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息;根据确定的代码类型和选择的操作类型,提取相应的代码模板;将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。可以自动生成各种不同类型的代码,具有普遍适用性。
Description
技术领域
本申请涉及计算机技术领域,尤指一种代码自动生成方法及装置。
背景技术
目前生成代码的过程一般是程序员书写表结构文档,在文档中建立模型,模型中可能涉及到多个表的基本描述及其子段、索引和约束,然后,将表结构文档提交给数据库管理员(DatabaseAdministrator,DBA)去审核,审核通过后,根据表结构文档制作相应的脚本或代码,例如,根据建立好的表结构文档,写JavaDO、ibatis、DAO也有可能是hibernate或jdbcTemplate等代码。
在这个过程中,需要程序员进行代码开发等工作,当一个模型中涉及到多个表结构时,即使其涉及到字段的新增、修改和删除,也需要重新进行代码的制作,从而使得在代码生成过程中,需要过多的人工参与以及需要大量的时间和人力进行重复性的代码制作工作。
现有技术中虽然也有一些代码生成器,但其都是针对某一种特定的系统进行开发的,不具有通用性,也不可避免代码制作过程中的重复性工作。且现有的代码生成器一般只涉及到程序开发过程中的一个局部,如Java代码部分或专门的DAO或脚本生成器,没有一种让开发者从前端到后端都可以定制化生成模板内容的平台。这是由于现有代码生成器不能通用于各中系统,需要重复开发导致的,对不同局部的代码生成器的开发都需要投入较多的人力资源。
可见,现有的代码生成器一般是按照的一种特定的格式,生成一种特定框架定义好的目录结构以及该特定框架事先定义的命名规则的文件,而在实际的项目中框架及目录各方面应当由项目本身所定制,在使用过程中无法记录历史每一次脚本变更记录,也不具备在同一次变更中的脚本自动合并的能力。
且现有的代码生成器绝大部分需要连接到对应的数据库中,依靠数据库的支持才能实现代码的生成,且通常受到账号密码以及相应的字典读取权限的限制,使用也不是很方便。
发明内容
本申请实施例提供一种代码自动生成方法及装置,用以解决现有技术中存在代码生成器不具有通用性,需要重复开发浪费人力和时间资源的问题。
一种代码自动生成方法,包括:
获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息;
根据确定的代码类型和选择的操作类型,提取相应的代码模板;
将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。
一种代码自动生成装置,包括:
信息获取模块,用于获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息;
模板提取模块,用于根据确定的代码类型和选择的操作类型,提取相应的代码模板;
代码生成模块,用于将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。
本申请有益效果如下:
本申请实施例提供的代码自动生成方法及装置,通过获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息;根据确定的代码类型和选择的操作类型,提取相应的代码模板;将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。上述方法可以根据不同的表结构信息和代码类型等因素获取不同的代码模板,实现不同类型代码的生成,避免了针对每种代码单独定制生成器单独进行开发,这节约了人力资源投入和减少了开发时间,具有较强的通用性和普遍适用性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中代码自动生成方法的流程图;
图2为本申请实施例中代码自动生成原理示意图;
图3为本申请实施例一中脚本类代码自动生成的流程图;
图4为本申请实施例一中代码配置信息输入界面示意图;
图5为本申请实施例一中两个脚本合并的示意图;
图6为本申请实施例二中可编程语言类代码自动生成的流程图;
图7为本申请实施例二中用户输入配置信息的界面示意图;
图8为本申请实施例二中生成的代码示例图;
图9为本申请实施例二中生成的代码示例图;
图10为本申请实施例二中生成的代码示例图;
图11为本申请实施例二中生成的代码示例图;
图12为本申请实施例三中表结构文档自动生成的流程图;
图13为本申请实施例三中生成的表结构文档示例图;
图14为本申请实施例中代码自动生成装置的结构示意图。
具体实施方式
为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
本申请实施例提供一种代码自动生成方法,可以实现各种类型的代码的自动生成,以避免代码开发过程中重复性的工作,其流程如图1所示,包括如下步骤:
S11:获取通过用户界面输入的待生成代码的代码配置信息。
代码自动生成装置可以提供用户界面,用于向用户显示自动配置的代码配置信息,并允许用户输入新的代码配置信息和修改自动配置的代码配置信息。参见图2所示的代码自动生成原理示意图,开发人员发起任务,创建表或修改表,创建表和修改表都可以通过用户界面实现。
S12:根据获取的代码配置信息得到表结构信息。
根据用户输入的和自动配置的代码配置信息提取表结构信息,该表结构信息为代码生成时可以被识别的信息,是一种中间结果。相较于现有技术中由开发人员书写表结构而言,这种中间结果可以机器识别并能够用于代码自动生成,而原来的表结构不能实现这一功能,此外该表结构信息还可以用于生成表结构文档,供开发人员查阅。参见图2所示的生成中间结果。中间结果可提交DBA审核,也可以供外部调度。
S13:根据确定的代码类型和选择的操作类型,提取相应的代码模板。
根据需要生成的是脚本类代码、可编程语言类代码,以及操作类型是修改表还是创建表,提取相应的代码模板。其中,修改表和创建表可以对应于修改代码和创建新代码。其中,脚本类代码可以是Oracle或Mysql脚本代码。
可选的,还可以根据表结构信息和操作类型提取表结构文档模板,用于生成表结构文档。
S14:将获取的表结构信息以及用户配置的配置信息填充到提取的代码模板中,得到待生成代码。得到的待生成代码可以是脚本类代码、可编程语言类代码。当然也可以生成表结构文档。
可以通过junjava、freeMarker、velocity等等完成类似代码的本地创建,生成的代码为文件,非常规范和标准,并且有代码高亮显示等效果。
上述代码自动生成方法还包括:
S15:当获取到多个表结构信息生成多个待生成代码时,将生成的多个待生成代码合并。
将多个表结构信息对应的待生成代码合并,进一步提高了自动生成代码的自动化程度。
现有重量级的代码生成模式,为基于基于框架本身,在框架内部完成对应的结构记录并基于框架的文件结构生成和框架匹配的文件目录及模板文件内容,一般比较适合一种或一类统一框架的项目,相对定制化。上述方法为一种轻量级的代码生成方法,其不固定代码结构框架,相对于现有的重量级的固定代码结构框架的生成方法而言能够更具有通用性。可以通过一个统一的代码自动生成装置完成表结构创建、抛却分布式表的困难,完成流程化交互基础上的各类相关模板产物的自动生成。具体而言,是将多个表看成一个逻辑表完成相应代码的创建,并且可以生成多个分表的脚本,这样在使用上就像一个表,实际上完成后台非常多的表的处理。
下面通过具体的实施例进行详细说明。
实施例一:
本申请实施例一提供的代码自动生成方法,针对脚本类代码说明其具体生成过程,以SQLScript脚本的生成为例,其流程如图3所示,执行步骤如下:
S101:获取通过用户界面输入的待生成的脚本类代码的代码配置信息。
根据表的创建或修改生成Script,按照语言类型划分为Oracle、Mysql等可支持的数据库,按照脚本总体类型划分新增脚本、执行前修改脚本、变更修改脚本;工具需要在同一个任务中完成多个脚本的分类、重组和类型合并等动作。
计算过程全部通过模板定制化结合开源Extjs强大的编辑框功能,完成表级别的各类功能的创建,根据每个表需要的类型不同,会对应生成不同的界面模板,并对应生成不同类型的Script脚本。如图4所示,其为代码配置信息输入界面的示例,该界面中可配置和/或输入表名称、注释、列信息、约束和索引等代码配置信息。该界面为创建表的信息输入界面,修改表的也是类似的。
S102:根据获取的代码配置信息得到表结构信息。
从上述图4所示的界面获取代码配置信息得到表结构信息。
S103:根据脚本类代码对应的数据库类型,提取相应操作类型的脚本模板。
该步骤实现根据确定的代码类型和选择的操作类型,提取相应的代码模板。其中,代码类型在本实施例中为脚本类代码选择的操作类型为创建表。
S104:将表结构信息中包含的脚本类代码生成参数以及用户配置的代码生成参数填充到获取的脚本模板中的相应位置,得到待生成的脚本类代码。
该步实现将得到的表结构信息以及用户配置的配置信息填充到提取的代码模板中,得到待生成代码。其中,代码模板的填充是基于关键字原则,在关键字内容处进行相应位置的替换,如表名称、列区域、注释区域等等,在内容尚未组装完成前,他们不会替换,而是各自按照语法规则进行组装;另外,界面模板中的基本属性和数据类型也是基于一个模板分类来完成,并最终完成统一的关键字校验、类型定义限制等等。
S105:将生成的多个脚本类代码合并。
可以将生成的多个脚本类代码合并,如图5所示,将生成的两个脚本类代码CreatTable(1)和CreatTable(2)合并,该步骤可以为MYSQL数据库中的脚本合并,多个开发人员以及DBA对同一个表操作后,此时会对这类SQL脚本代码进行合并,将对同一个表的操作合并在一条SQL脚本代码中,执行的依据和合并的基础是变更中产生的表变更和表有一对多的对应关系。DBA和开发也可以将脚本类代码从中导出,使对应的测试环境、预发环境、生成环境等等保持一致。
实施例二:
本申请实施例二提供的代码自动生成方法,针对可编程语言类代码说明其具体生成过程,其流程如图6所示,执行步骤如下:
S201:获取通过用户界面输入的待生成的可编程语言类代码的代码配置信息。
参见步骤S101,实现可编程语言类代码的代码信息配置,可以是创建表或修改表的方式。
S202:根据获取的代码配置信息,得到表结构信息和可选择的代码类型。
根据输入界面获取的代码配置信息可以得到表结构信息这一中间结果,即依赖于创建表或修改表获取表结构信息使其成为一个稳定的中间结果。
还需要确定可选择的代码类型。其中,代码类型可以是基于pojo格式的javaDO、javaDO(hibernate)、ibatis、javaDAO(ibatis)、javaDAO(jdbcTemplate)、json、json(分页)、extjs、extjs(分页)、以及基于map结构的相对应代码等其它代码类型,这类代码扩展也非常容易,可快速定制某种新的代码种类;并将部分细节留以用户自定义配置。
S203:获取用户提供的配置信息。
这里的配置信息为可编程语言生成参数,用户提供的配置信息允许用户在统一代码模板基础上进行一些细节差异的配置,系统会提供一些默认值等可选参数,用户也可以自己去定义这些参数,如文件输出字符集、javaDO的后缀等,用户配置信息输入界面可以如图7所示。
S204:根据可编程语言类代码的代码类型,提取相应操作类型的可编程语言代码模板。该步骤实现根据确定的代码类型和选择的操作类型,提取相应的代码模板。
S205:将表结构信息中包含的可编程语言类代码生成参数以及用户配置的可编程语言生成参数填充到获取的可编程语言代码模板中的相应位置,得到待生成的可编程语言类代码。
该步骤实现将表结构信息以及用户配置的配置信息填充到提取的代码模板中,得到待生成代码。用户配置配置信息后,系统将把该信息以Json格式记录下来存储,在用户重新生成代码的时候,系统会调出用户配置的Json配置信息并与系统默认配置的可编程语言类代码生成参数做一次合并操作,来共同完成代码的生成,代码生成的种类较多,下面展示了其中的4种代码生成后的效果图,展示的是从后端到前段最基本的代码读写。
如图8所示,其为生成的Java基本对象代码(javaDO)在代码自动生成装置或说代码自动生成器界面中的显示效果,JavaDO中包含的信息与数据库中的信息对应。
如图9所示为生成的Java基本关系映射代码(JavaDAO,也称为jdbcTemplate)在代码自动生成装置或说代码自动生成器界面中的显示效果,JavaDAO代码实现从数据库填充内容的功能。
如图10所示为生成的Json代码在代码自动生成装置或说代码自动生成器界面中的显示效果,Json代码实现将获取的数据输出的功能。
如图11所示为生成的ExtJs列表在代码自动生成装置或说代码自动生成器界面中的显示效果,ExtJs列表代码实现将数据填充到用户界面中的功能,以便展示信息给用户。
这些代码按照标准的生成格式进行生成,开发人员几乎可以完全拷贝编写中需要的大部分代码进而编写更多的业务后来实现自己的程序逻辑,从而避免了很多重复操作。
该实施例二可以实现各种代码的生成,其生成的代码也可以是一种模板代码,可以供开发人员更改,该模板代码的生成相对简单,且种类繁多,不强制依赖于任何框架模板,可动态化配置客户端诸多设置,实现轻量级种类繁多的模板代码生成,来降低开发者大量重复的工作。
实施例三:
本申请实施例三提供的代码自动生成方法,在代码生成的同时,实现表结构文档的输出,得到可跟踪的规范文档,其流程如图12所示,执行步骤如下:
S301:获取表结构信息和可选择的操作类型。
根据输入界面获取的代码配置信息可以得到表结构信息这一中间结果,即依赖于创建表或修改表获取表结构信息使其成为一个稳定的中间结果。
S302:根据获取的操作类型,生成表结构文档模板。
操作类型可以包括创建表和修改表,在系统完成在线建表后,一般需要一份文档化的表结构来记载生成的代码的逻辑结构,这里也可以实现为开发人员自动生成了相应的结构代码即表结构文档。
S303:将表结构信息填充到表结构文档模板中的相应位置。
生成文档的基础技术为开源的POI技术,即基于java的excel操作技术,这里会组合同一个任务下的每一个表,根据每个表的类型以及操作类型,生成对应的文档模板,再将内容填充到对应的文档位置中。
S304:得到输出给用户的表结构文档并输出。
生成的表结构文档可以是一份xls文件(excel文件),可被通用office系列软件打开,这些文档可直接贴放在文档中继续编写用户自己的业务描述及操作细节即可生成详细设计文档。生成的表结构文档可以如图13所示,如图13中的表结构文档包括有两个表结构,每个表结构中包括表名称、备注信息、表类型和一些列信息等。
上述方法从通过输入界面在线创建表开始,直至生成代码,同时生成表结构文档,可以覆盖代码开噶的全过程所需要的模板,并实现智能化脚本合并和历史脚本的跟踪记录以及文档的合并等功能,该方法可以定制模板细节,不强制依赖客户端框架和文件路径,对分布式数据表可以实现透明处理,即在代码生成中抛开各个分支表对代码生成的影响,并集中对线上表进行权限控制。经使用验证这种方式能够适用于60%以上的代码自动生成,节约开发人员将近一半的时间,其业务模板相对较为平稳,不存在太多定制的系统,对于定制化较多的系统,可对应选取应用,生成项目前期的多数代码,并可生成定量的增量代码以及文档结构,也可以减少很大的工作中重复劳动带来的巨大开销。
基于统一发明构思,本申请实施例还提供一种代码自动生成装置,如图14所示,该装置可以设在用于代码生成的设备中,该装置包括:信息获取模块10、模板提取模块20和代码生成模块30。
信息获取模块10,用于获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息。
模板提取模块20,用于根据确定的代码类型和选择的操作类型,提取相应的代码模板。
代码生成模块30,用于将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。
优选的,上述模板提取模块20,具体用于当代码为脚本类代码时,根据脚本类代码对应的数据库类型,提取相应操作类型的脚本模板;相应的,代码生成模块30,具体用于将表结构信息中包含的脚本类代码生成参数以及用户配置的代码生成参数填充到获取的脚本模板中的相应位置,得到待生成的脚本类代码。
优选的,上述模板提取模块20,具体用于当代码为可编程语言类代码时,根据可编程语言类代码的代码类型,提取相应操作类型的可编程语言代码模板;相应的,代码生成模块30,具体用于将表结构信息中包含的可编程语言类代码生成参数以及用户配置的可编程语言生成参数填充到获取的可编程语言代码模板中的相应位置,得到待生成的可编程语言类代码。
优选的,上述代码生成模块30,还用于当获取到多个表结构信息生成多个待生成代码时,将生成的多个待生成代码合并。
优选的,上述模板提取模块20,还用于获取表结构信息和操作类型,根据操作类型,生成表结构文档模板;相应的,代码生成模块30,还用于将表结构信息填充到表结构文档模板中的相应位置,得到输出给用户的表结构文档。
上述方法基于数据库端的单点启动任务建设,从提交代码的结构信息到各类模板代码的自动生成以及表结构文档的自动化生成,实现一种轻量级的代码生成,贡献于敏捷开发过程中的各类程序员,该代码生成器在于使用的语言很广,从一个程序员常规的前端到后端的常用模板几乎都是自动生成轻量级模板,让其选取使用,而不在于某一种代码做得非常特殊。在实际应用中反应良好,节约了开发人员大量重复劳动时间,并降低出错的概率。
代码生成的过程中,需要和数据库字段重新对应一次或多次,并要保证规范的命名规则和数据类型的一致性,上述方法保证了该执行动作几乎一样的过程自动实现,不需要手动实现。从开始编写到从后台向前台输出数据,中间有可能是JSON、一个XML、或者本身是一个html页面,这个过程也需要字段重新组合,组装为前台显示需要的数据,并对相应的日期数据进行格式化,上述方法也保证了该过程自动实现,不需要手动重复操作。
也就是说本申请的方法基于多种开源框架及工具特征,并去掉重量级跨越代码和框架生成过程,从轻量级选取为主,可自定义配置特殊性和模板,让使用者有更大的选择权并全套完善从前端到后端整个同步和异步交互的各类代码生成,也可快速定制某类新的代码种类,如:junjava、freeMarker、velocity以及生成SQL脚本的PL/SQLdeveloper、NavicatforMySQL等等,再此基础上,实现轻量级+个性化动态配置的快速代码生成方法。解决了代码生成的中途所产生的大部分重复工作,让开发更加关系不一样的事情,一样的动作应当有由软件自动地去完成,让程序设计人员有更多的时间和精力去关注于业务的核心,而不是重复的去做同样的劳动。
上述方法可适用的代码种类很多,也可以快速扩展代码种类,以及可自定义模板细节,为开发人员从后台表结构为基础开始到前端页面生成所有过程中所可能涉及的模板代码的自动生成。该方法只输出代码内容,并不和框架本身结合,各类命名规则以及字符集等等都可以设立个性化定制,开发者只是从内容中选取自己需要的部分;另外对于数据结构的修改,代码生成器也只会生成增量字段的代码,以方便开发者直接使用增量代码。
上述方法能够根据开发者和DBA在一次变更流程中的修改,会自动根据数据库类型进行各种不同程度的脚本合并,并最终将一个任务下多个表的修改内容自动完成合并。该方法结合消息及时通知机制以及自动发布前通知机制,一次建表后,相应数据库SQL脚本以及对应的各类模板代码自动生成的功能。开发者无需关心字典的来源以及分表规则,也无需关心对应数据库的连接信息,直接生成代码。
上述方法及装置,在代码生成的功能层面,可以采用java框架,数据库方面可以结合PL/SQLdeveloper对ORACLE的脚本支持特征以及NavicatforMySQL对MYSQL语言的支持特征。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。例如:可以通过Linux,C或者C++语言等编程语言编辑计算机程序功能模块实现。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
上述说明示出并描述了本申请的优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
Claims (10)
1.一种代码自动生成方法,其特征在于,包括:
获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息;
根据确定的代码类型和选择的操作类型,提取相应的代码模板,所述代码类型包括:脚本类代码和可编程语言类代码,所述操作类型包括:修改表和创建表;
将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。
2.如权利要求1所述的方法,其特征在于,当所述代码为脚本类代码时,所述根据确定的代码类型和选择的操作类型,提取相应的代码模板,具体包括:
根据所述脚本类代码对应的数据库类型,提取相应操作类型的脚本模板;
将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码,具体包括:将所述表结构信息中包含的脚本类代码生成参数以及用户配置的代码生成参数填充到获取的脚本模板中的相应位置,得到待生成的脚本类代码。
3.如权利要求1所述的方法,其特征在于,当所述代码为可编程语言类代码时,所述根据确定的代码类型和选择的操作类型,提取相应的代码模板,具体包括:
根据所述可编程语言类代码,提取相应操作类型的可编程语言代码模板;
将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码,具体包括:将所述表结构信息中包含的可编程语言类代码生成参数以及用户配置的可编程语言生成参数填充到获取的可编程语言代码模板中的相应位置,得到待生成的可编程语言类代码。
4.如权利要求1所述的方法,其特征在于,还包括:
当获取到多个表结构信息生成多个待生成代码时,将生成的多个待生成代码合并。
5.如权利要求1-4任一所述的方法,其特征在于,还包括:
获取表结构信息和操作类型,根据所述操作类型,生成表结构文档模板;
将所述表结构信息填充到表结构文档模板中的相应位置,得到输出给用户的表结构文档。
6.一种代码自动生成装置,其特征在于,包括:
信息获取模块,用于获取通过用户界面输入的待生成代码的代码配置信息,根据获取的所述代码配置信息得到表结构信息;
模板提取模块,用于根据确定的代码类型和选择的操作类型,提取相应的代码模板,所述代码类型包括:脚本类代码和可编程语言类代码,所述操作类型包括:修改表和创建表;
代码生成模块,用于将所述表结构信息以及用户配置的配置信息填充到提取的所述代码模板中,得到所述待生成代码。
7.如权利要求6所述的装置,其特征在于:
所述模板提取模块,具体用于当所述代码为脚本类代码时,根据所述脚本类代码对应的数据库类型,提取相应操作类型的脚本模板;相应的,
所述代码生成模块,具体用于将所述表结构信息中包含的脚本类代码生成参数以及用户配置的代码生成参数填充到获取的脚本模板中的相应位置,得到待生成的脚本类代码。
8.如权利要求6所述的装置,其特征在于,所述模板提取模块,具体用于当所述代码为可编程语言类代码时,根据所述可编程语言类代码,提取相应操作类型的可编程语言代码模板;相应的,
所述代码生成模块,具体用于将所述表结构信息中包含的可编程语言类代码生成参数以及用户配置的可编程语言生成参数填充到获取的可编程语言代码模板中的相应位置,得到待生成的可编程语言类代码。
9.如权利要求6所述的装置,其特征在于,所述代码生成模块,还用于:
当获取到多个表结构信息生成多个待生成代码时,将生成的多个待生成代码合并。
10.如权利要求6-9任一所述的装置,其特征在于:
所述模板提取模块,还用于获取表结构信息和操作类型,根据所述操作类型,生成表结构文档模板;相应的,
所述代码生成模块,还用于将所述表结构信息填充到表结构文档模板中的相应位置,得到输出给用户的表结构文档。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391484.3A CN103135976B (zh) | 2011-11-30 | 2011-11-30 | 代码自动生成方法及装置 |
HK13108581.3A HK1181486A1 (zh) | 2011-11-30 | 2013-07-23 | 代碼自動生成方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391484.3A CN103135976B (zh) | 2011-11-30 | 2011-11-30 | 代码自动生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103135976A CN103135976A (zh) | 2013-06-05 |
CN103135976B true CN103135976B (zh) | 2016-05-11 |
Family
ID=48495852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110391484.3A Active CN103135976B (zh) | 2011-11-30 | 2011-11-30 | 代码自动生成方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103135976B (zh) |
HK (1) | HK1181486A1 (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412749A (zh) * | 2013-07-29 | 2013-11-27 | 福建联迪商用设备有限公司 | 一种基于关系型数据库的代码生成方法及代码生成器 |
CN103473108A (zh) * | 2013-08-12 | 2013-12-25 | 福建富士通信息软件有限公司 | 一种Java代码生成方法 |
CN103473045A (zh) * | 2013-08-27 | 2013-12-25 | 广州华多网络科技有限公司 | 一种生成接口文档的方法及装置 |
CN104424522B (zh) * | 2013-08-28 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 一种业务处理系统及其配置方法 |
CN103488738A (zh) * | 2013-09-18 | 2014-01-01 | 北京思特奇信息技术股份有限公司 | 一种自动实现java对象及数据表sql文件的方法及系统 |
CN103617037B (zh) * | 2013-11-27 | 2017-12-08 | 邵寻 | 用于web开发系统的开发方法和web开发系统 |
CN103942280A (zh) * | 2014-04-02 | 2014-07-23 | 云南电网公司 | 一种基于数据结构自动生成代码的方法 |
CN103984542B (zh) * | 2014-04-14 | 2017-11-14 | 美的集团股份有限公司 | 电控功能的配置方法和装置 |
CN104035873A (zh) * | 2014-06-30 | 2014-09-10 | 青岛海信电器股份有限公司 | 测试代码生成方法及生成装置 |
CN104158903B (zh) * | 2014-08-27 | 2018-05-01 | 上海斐讯数据通信技术有限公司 | Oam协议栈编码方法及系统 |
CN104267938B (zh) * | 2014-09-16 | 2018-02-23 | 福建新大陆软件工程有限公司 | 一种流式计算的应用快速开发部署的方法及装置 |
CN104317604A (zh) * | 2014-11-13 | 2015-01-28 | 中国建设银行股份有限公司 | 一种程序代码生成方法及装置 |
CN104407901B (zh) * | 2014-12-08 | 2018-04-06 | 北京国双科技有限公司 | 代码的添加方法和装置 |
CN104461548B (zh) * | 2014-12-15 | 2018-02-02 | 北京国双科技有限公司 | 代码片段的添加方法和装置 |
CN104598233A (zh) * | 2015-01-12 | 2015-05-06 | 北京中交兴路车联网科技有限公司 | 一种代码生成方法 |
CN104598240B (zh) * | 2015-01-20 | 2017-08-04 | 北京仿真中心 | 一种跨平台的仿真模型开发方法及系统 |
CN106293661A (zh) * | 2015-05-22 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 图形报表的生成、生成处理方法及装置 |
CN106293664A (zh) * | 2015-05-27 | 2017-01-04 | 交通银行股份有限公司 | 代码生成方法及装置 |
CN104850498B (zh) * | 2015-06-05 | 2017-06-16 | 上海斐讯数据通信技术有限公司 | 一种填充信息测试方法及系统 |
CN104965714A (zh) * | 2015-07-27 | 2015-10-07 | 广州杰赛科技股份有限公司 | 应用软件的代码生成方法和系统 |
CN106598554B (zh) * | 2015-10-14 | 2021-03-23 | 上海汽车集团股份有限公司 | 一种代码生成装置 |
CN105354072A (zh) * | 2015-10-23 | 2016-02-24 | 北京京东尚科信息技术有限公司 | 一种基于Eclipse平台的代码生成方法 |
CN106873949A (zh) * | 2015-12-11 | 2017-06-20 | 泰康保险集团股份有限公司 | 代码生成方法及其装置 |
CN106933551B (zh) * | 2015-12-30 | 2021-01-22 | 北京国双科技有限公司 | 配置处理方法和装置 |
CN106933552B (zh) * | 2015-12-30 | 2020-11-03 | 中国移动通信集团公司 | 一种数据处理方法及前端代码生成装置 |
CN105760168A (zh) * | 2016-02-23 | 2016-07-13 | 深圳竹信科技有限公司 | 一种代码文件自动生成方法及系统 |
CN107220251A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 生成描述信息的方法及装置 |
CN107291438B (zh) * | 2016-04-13 | 2021-09-24 | 阿里巴巴集团控股有限公司 | 自动化脚本的生成方法、装置及电子设备 |
CN107450899B (zh) * | 2016-06-01 | 2022-04-26 | 深圳市信锐网科技术有限公司 | 终端控制脚本的生成方法和装置 |
CN106469064A (zh) * | 2016-09-04 | 2017-03-01 | 深圳市云智易联科技有限公司 | 代码生成方法及代码生成装置 |
CN106502663A (zh) * | 2016-10-17 | 2017-03-15 | 成都知道创宇信息技术有限公司 | 一种前端项目框架生成方法 |
CN106599139B (zh) * | 2016-12-05 | 2021-02-26 | 金蝶软件(中国)有限公司 | 一种基于MyBatis框架的SQL处理方法及装置 |
CN106648645B (zh) * | 2016-12-13 | 2020-07-17 | 北京护航科技股份有限公司 | 一种代码生成系统 |
CN106873974A (zh) * | 2016-12-30 | 2017-06-20 | 武汉默联股份有限公司 | 智能代码生成引擎系统及方法 |
US10296307B2 (en) | 2017-05-16 | 2019-05-21 | International Business Machines Corporation | Method and system for template extraction based on source code similarity |
CN108958726B (zh) * | 2017-05-19 | 2022-01-28 | 北京京东尚科信息技术有限公司 | 一种数据开发的方法和装置 |
CN107291450B (zh) * | 2017-05-25 | 2021-04-09 | 土巴兔集团股份有限公司 | 一种编程友好型的敏捷代码自动生成方法 |
CN107273117B (zh) * | 2017-05-25 | 2021-04-09 | 土巴兔集团股份有限公司 | 一种编程友好型的敏捷代码自动生成系统 |
CN107357588B (zh) * | 2017-07-19 | 2020-08-14 | 万帮充电设备有限公司 | 目标代码生成方法及装置 |
CN107908631B (zh) * | 2017-07-25 | 2021-04-20 | 平安科技(深圳)有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN107748663A (zh) * | 2017-10-24 | 2018-03-02 | 东信和平科技股份有限公司 | 一种基于stk的菜单应用的开发方法、装置及介质 |
CN107729561A (zh) * | 2017-11-09 | 2018-02-23 | 成都卓凡软件科技有限公司 | 基于数据库表结构反向生成对数据库表操作的方法 |
CN107798120B (zh) * | 2017-11-10 | 2022-01-21 | 中国银行股份有限公司 | 一种数据转换方法及装置 |
CN107944013A (zh) * | 2017-12-08 | 2018-04-20 | 珠海华索软件科技有限公司 | 一种数据库代码生成方法及系统 |
CN108170809B (zh) * | 2017-12-28 | 2020-11-03 | 平安科技(深圳)有限公司 | 建表脚本生成方法、装置、设备及计算机可读存储介质 |
CN108153897B (zh) * | 2018-01-10 | 2022-04-12 | 中国银行股份有限公司 | 一种plsql程序代码生成方法及系统 |
CN110134427A (zh) * | 2018-02-08 | 2019-08-16 | 北京京东尚科信息技术有限公司 | 一种生成代码文件的方法和装置 |
CN108958727A (zh) * | 2018-04-13 | 2018-12-07 | 北京优帆科技有限公司 | 一种api客户端代码的生成方法及系统 |
CN108763341B (zh) * | 2018-05-14 | 2023-07-25 | 中国平安人寿保险股份有限公司 | 电子装置、自动化建表方法及存储介质 |
CN108710489A (zh) * | 2018-05-23 | 2018-10-26 | 中国平安人寿保险股份有限公司 | 自动化导数脚本生成方法、装置、计算机设备 |
CN108804327A (zh) * | 2018-06-12 | 2018-11-13 | 北京京东金融科技控股有限公司 | 一种自动生成测试数据的方法和装置 |
CN109101229A (zh) * | 2018-07-26 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种面向对象的代码自动生成方法、装置及设备 |
CN109101231B (zh) * | 2018-08-07 | 2022-09-23 | 百度在线网络技术(北京)有限公司 | 脚本代码生成方法、装置、计算机设备和存储介质 |
CN109271161B (zh) * | 2018-08-20 | 2024-06-04 | 中国平安人寿保险股份有限公司 | 样板代码生成方法、装置及存储设备及计算机设备 |
CN109032571A (zh) * | 2018-08-28 | 2018-12-18 | 苏州艾利特机器人有限公司 | 一种机器人工艺程序生成方法 |
CN109508182B (zh) * | 2018-09-18 | 2022-05-17 | 广州虎牙信息科技有限公司 | 快速生成指令的方法、服务器以及计算机存储介质 |
CN109492381A (zh) * | 2018-09-26 | 2019-03-19 | 深圳竹云科技有限公司 | 一种基于数据库的jaas扩展验证方法 |
CN110968306A (zh) * | 2018-09-28 | 2020-04-07 | 千寻位置网络有限公司 | 数据的代码自动生成方法及装置、控制设备 |
CN109445768B (zh) * | 2018-09-28 | 2022-02-11 | 平安科技(深圳)有限公司 | 数据库脚本生成方法、装置、计算机设备及存储介质 |
CN110968307A (zh) * | 2018-09-29 | 2020-04-07 | 北京数聚鑫云信息技术有限公司 | 一种基于智能生成基础代码的微服务构建方法及装置 |
CN110968591A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 查询语句的生成方法、装置、存储介质及处理器 |
CN109359112A (zh) * | 2018-10-15 | 2019-02-19 | 行吟信息科技(上海)有限公司 | 一种代码的自动生成方法及代码生成器 |
CN109445384B (zh) * | 2018-10-16 | 2021-09-14 | 劳博(上海)物流科技有限公司 | 一种多设备控制系统 |
CN109375943A (zh) * | 2018-10-18 | 2019-02-22 | 中国银行股份有限公司 | 一种程序文件生成方法及装置 |
CN109408043B (zh) * | 2018-10-19 | 2021-10-22 | 中国银行股份有限公司 | 一种程序生成方法及装置 |
CN109522012A (zh) * | 2018-10-29 | 2019-03-26 | 珠海迎迎科技有限公司 | 一种自动代码生成器及自动代码生成方法 |
CN109471624B (zh) * | 2018-11-21 | 2021-12-24 | 中国航空无线电电子研究所 | 基于gosaa的共享数据模型控制系统及数据架构生成方法 |
CN109710231A (zh) * | 2018-12-21 | 2019-05-03 | 成都四方伟业软件股份有限公司 | 一种可视化脚本编辑方法与装置 |
CN111367500A (zh) * | 2018-12-26 | 2020-07-03 | 顺丰科技有限公司 | 数据的处理方法和装置 |
CN109710243B (zh) * | 2018-12-29 | 2022-05-17 | 百度在线网络技术(北京)有限公司 | 基于可视化平台的区块链开发方法、装置、服务器及介质 |
CN109783509A (zh) * | 2019-01-04 | 2019-05-21 | 中国银行股份有限公司 | Sql脚本生成方法及装置 |
CN109739493A (zh) * | 2019-01-18 | 2019-05-10 | 宜创(北京)科技有限公司 | 数据库操作语句的生成方法、装置、电子设备及存储介质 |
CN109955266B (zh) * | 2019-04-01 | 2020-12-15 | 珠海市一微半导体有限公司 | 机器人回座代码的自动生成设备和自动生成系统 |
CN110427339A (zh) * | 2019-06-29 | 2019-11-08 | 苏州浪潮智能科技有限公司 | 一种转换自动应答文件格式的方法和装置 |
CN110674141A (zh) * | 2019-10-09 | 2020-01-10 | 四川长虹电器股份有限公司 | 基于java开发的页面新增数据库表的方法 |
CN111324343B (zh) * | 2020-02-20 | 2022-03-25 | 蚂蚁财富(上海)金融信息服务有限公司 | 代码生成方法以及装置 |
CN112346726B (zh) * | 2020-03-16 | 2023-12-12 | 成都华微电子科技股份有限公司 | 一种基于表单信息自动化生成设计代码的方法 |
CN111427567B (zh) * | 2020-03-20 | 2023-08-18 | 杭州涂鸦信息技术有限公司 | 一种智能产品快速生成方法及其系统和设备 |
CN111475505B (zh) * | 2020-03-27 | 2023-05-26 | 平安科技(深圳)有限公司 | 一种数据采集的方法及设备 |
CN111722839B (zh) * | 2020-06-24 | 2023-03-03 | 北京航天数据股份有限公司 | 一种代码生成方法、装置、电子设备及存储介质 |
CN111796810A (zh) * | 2020-07-03 | 2020-10-20 | 福建天晴在线互动科技有限公司 | 一种可配置化快速生成Mysql数据库代码的方法及其系统 |
CN112068895B (zh) * | 2020-08-10 | 2023-12-19 | 深圳市鼎盛光电有限公司 | 代码配置方法、装置、视频播放设备及存储介质 |
CN111968022B (zh) * | 2020-08-12 | 2021-10-26 | 武汉易瑞信息技术股份有限公司 | 一种基于json配置方式的业务编号生成系统及方法 |
CN112015429B (zh) * | 2020-08-21 | 2023-08-04 | 杭州指令集智能科技有限公司 | 一种代码生成方法、装置及设备 |
CN112035565A (zh) * | 2020-09-03 | 2020-12-04 | 天元大数据信用管理有限公司 | 一种根据word文档生成sql脚本的方法 |
CN112433699A (zh) * | 2020-11-05 | 2021-03-02 | 北京中电华大电子设计有限责任公司 | 一种用于se个人化的脚本引擎 |
CN112486490B (zh) * | 2020-12-15 | 2024-03-19 | 平安银行股份有限公司 | 前端代码打包方法、装置、电子设备及存储介质 |
CN112558946B (zh) * | 2020-12-16 | 2024-06-11 | 中国平安人寿保险股份有限公司 | 一种生成代码的方法、装置、设备和计算机可读存储介质 |
CN112631568A (zh) * | 2020-12-30 | 2021-04-09 | 深圳康佳电子科技有限公司 | 一种代码生成方法、装置、智能终端及存储介质 |
CN112947911A (zh) * | 2021-04-26 | 2021-06-11 | 平安普惠企业管理有限公司 | 接口脚本生成方法、装置、设备及存储介质 |
CN113485770B (zh) * | 2021-07-26 | 2024-03-22 | 挂号网(杭州)科技有限公司 | 业务配置数据的确定方法、装置、电子设备及存储介质 |
CN113760266B (zh) * | 2021-11-09 | 2022-02-25 | 北京明略昭辉科技有限公司 | 一种功能模块文件的创建方法、创建装置和电子设备 |
CN115357252B (zh) * | 2022-10-08 | 2022-12-27 | 成都数联云算科技有限公司 | 源码文件生成方法、装置、电子设备和存储介质 |
CN117348916B (zh) * | 2023-12-06 | 2024-03-26 | 中邮消费金融有限公司 | 脚本生成方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008952A (zh) * | 2007-01-30 | 2007-08-01 | 华为技术有限公司 | 一种持久层生成方法及装置 |
CN101419544A (zh) * | 2007-10-26 | 2009-04-29 | 镇江雅迅软件有限责任公司 | 一种计算机程序代码自动生成器 |
CN101697120A (zh) * | 2009-11-05 | 2010-04-21 | 河南辉煌科技股份有限公司 | 基于关系型数据库的j2ee代码生成方法 |
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7403934B2 (en) * | 2003-06-10 | 2008-07-22 | Sbc Properties, L.P. | Script generator for automating system administration operations |
-
2011
- 2011-11-30 CN CN201110391484.3A patent/CN103135976B/zh active Active
-
2013
- 2013-07-23 HK HK13108581.3A patent/HK1181486A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008952A (zh) * | 2007-01-30 | 2007-08-01 | 华为技术有限公司 | 一种持久层生成方法及装置 |
CN100557609C (zh) * | 2007-01-30 | 2009-11-04 | 华为技术有限公司 | 一种持久层生成方法及装置 |
CN101419544A (zh) * | 2007-10-26 | 2009-04-29 | 镇江雅迅软件有限责任公司 | 一种计算机程序代码自动生成器 |
CN101697120A (zh) * | 2009-11-05 | 2010-04-21 | 河南辉煌科技股份有限公司 | 基于关系型数据库的j2ee代码生成方法 |
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
Also Published As
Publication number | Publication date |
---|---|
HK1181486A1 (zh) | 2013-11-08 |
CN103135976A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103135976B (zh) | 代码自动生成方法及装置 | |
CN103383645B (zh) | 代码生成方法及系统 | |
CN103309904B (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN102449598B (zh) | 包设计和生成 | |
US7783678B2 (en) | Method for automating software manufacturing process based on user interface form design, and computer readable medium recording computer executable instruction for performing the same | |
CN116225429A (zh) | 基于拖拽式组件框架的ipage网页式低代码开发平台 | |
CN106445536B (zh) | 自动化业务设计管理系统 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN105528418B (zh) | 一种设计文档生成方法及装置 | |
CN102779037B (zh) | 一种自动生成与统一维护java项目的可视化编程方法 | |
CN105094818A (zh) | 基于soa的自然资源综合应用构建方法及系统 | |
CN105512304A (zh) | 在线生成互联网应用方法和系统集成方法及支撑平台 | |
Rose et al. | Eugenia live: a flexible graphical modelling tool | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发系统及其方法 | |
CN103049251A (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN105930344A (zh) | 一种基于产品研制流程的数据库应用系统快速开发平台 | |
CN110020834A (zh) | 一种建模和调试融合的在线智能大数据开发方法 | |
de_Almeida Monte-Mor et al. | Applying MDA approach to create graphical user interfaces | |
Savic et al. | Preliminary experience using JetBrains MPS to implement a requirements specification language | |
Colombo et al. | A study for neutral format to exchange and reuse engineering knowledge in KBE applications | |
Rahmouni et al. | MDA-based ATL transformation to generate MVC 2 web models | |
Zhang et al. | Mockup‐driven fast‐prototyping methodology for Web application development | |
KR20160042729A (ko) | 소프트웨어 병렬 개발 방법 및 시스템 | |
CN114281797A (zh) | 基于敏捷低代码平台快速创建基层数据汇聚仓库的方法 | |
Jodłowiec et al. | Towards the pattern-based transformation of SBVR models to association-oriented models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1181486 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1181486 Country of ref document: HK |