CN106648645A - 一种代码生成系统 - Google Patents

一种代码生成系统 Download PDF

Info

Publication number
CN106648645A
CN106648645A CN201611145011.4A CN201611145011A CN106648645A CN 106648645 A CN106648645 A CN 106648645A CN 201611145011 A CN201611145011 A CN 201611145011A CN 106648645 A CN106648645 A CN 106648645A
Authority
CN
China
Prior art keywords
file
template
module
code
generating system
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.)
Granted
Application number
CN201611145011.4A
Other languages
English (en)
Other versions
CN106648645B (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.)
Escort Technology Co.,Ltd.
Original Assignee
Beijing Escort Polytron Technologies Inc
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 Beijing Escort Polytron Technologies Inc filed Critical Beijing Escort Polytron Technologies Inc
Priority to CN201611145011.4A priority Critical patent/CN106648645B/zh
Publication of CN106648645A publication Critical patent/CN106648645A/zh
Application granted granted Critical
Publication of CN106648645B publication Critical patent/CN106648645B/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/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种代码生成系统,包括模板生成模块和项目生成模块;所述模板生成模块包括:标签管理模块、模板管理模块、第一映射模块;所述项目生成模块包括:项目管理模块、数据包管理模块、实体管理模块、字段管理模块、第二映射模块和代码生成模块。本发明的有益效果为:通用性好、安全性高、可操作性强;缩短研发周期,节约研发成本;具有良好的规范性,代码整体质量高。

Description

一种代码生成系统
技术领域
本发明涉及计算机技术领域,具体来说,涉及一种代码生成系统。
背景技术
系统开发中往往涉及到很多相似或重复的工作,比如学生管理、教师管理,都存在增、删、改、查的操作,如果再对其进行重新编程,不仅费时费力而且极不必要,因此使用代码生成工具些协助项目开发,成为开发人员越来越常用的一种手段,虽然代码生成工具可以显著提高开发效率以及软件代码的复用率、降低开发成本,但是当前的代码生成工具部分核心代码未提供,其生成的代码往往基于代码生成器提供者提供的基础代码,这些基础类往往以加密后的动态链接库提供,对企业的最终代码存在威胁。
因此,研制出一种通用性好、安全性高的代码生成工具,便成为业内人士亟需解决的问题。
发明内容
本发明提出了一种代码生成系统,克服了现有产品中上述方面的不足。
本发明的目的是通过以下技术方案来实现的:
一种代码生成系统,其包括:一模板生成模块,其包括:标签管理模块,用于添加、修改和删除标签文件;模板管理模块,用于将已有的程序框架制成模板文件,并用于添加、修改和删除模板文件;和第一映射模块,用于将所述标签文件与模板文件中需要改动的部分一一映射,生成第一映射文件,并用于添加、修改和删除第一映射文件;和
一项目生成模块,其包括:项目管理模块,用于添加、修改和删除项目文件;数据包管理模块,用于添加、修改和删除项目文件中的数据包;实体管理模块,用于添加、修改和删除数据包中实体文件;字段管理模块,用于添加、修改和删除实体文件中的字段,并对字段的数据类型进行设置;第二映射模块,用于将字段与所述第一映射文件中的标签文件一一映射,生成第二映射文件,并用于添加、修改和删除第二映射文件;和代码生成模块,用于根据第二映射文件将字段以添加、修改或删除的方式对模板文件进行修改,并生成代码文件。
进一步地,所述标签文件包括内置标签和自定义标签。
进一步地,所述标签管理模块和模板管理模块中均设置有可高亮关键字的在线代码编辑器。
进一步地,所述模板生成模块还包括环境变量模块,所述环境变量模块用于将环境变量引入模板文件中。
进一步地,所述模板管理模块还用于对模板文件进行分组。
进一步地,所述实体管理模块还用于设置实体文件的继承关系及实体文件的类型
进一步地,所述实体文件的类型为普通类或枚举类。
进一步地,所述字段的数据类型为字符串、数字、日期、枚举类型或复杂类型。
进一步地,所述复杂类型中的数据关系包括一对多、多对一和多对多。
本发明的有益效果为:通用性好、安全性高、可操作性强;缩短研发周期,节约研发成本;具有良好的规范性,代码整体质量高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例所述的代码生成系统的流程图一;
图2是根据图1所示的代码生成系统的流程图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1-2所示,根据本发明实施例所述的一种代码生成系统,其包括:一模板生成模块,其包括:标签管理模块,用于添加、修改和删除标签文件;模板管理模块,用于将已有的程序框架制成模板文件,并用于添加、修改和删除模板文件;和第一映射模块,用于将所述标签文件与模板文件中需要改动的部分一一映射,生成第一映射文件,并用于添加、修改和删除第一映射文件;和
一项目生成模块,其包括:项目管理模块,用于添加、修改和删除项目文件;数据包管理模块,用于添加、修改和删除项目文件中的数据包;实体管理模块,用于添加、修改和删除数据包中实体文件;字段管理模块,用于添加、修改和删除实体文件中的字段,并对字段的数据类型进行设置;第二映射模块,用于将字段与所述第一映射文件中的标签文件一一映射,生成第二映射文件,并用于添加、修改和删除第二映射文件;和代码生成模块,用于根据第二映射文件将字段以添加、修改或删除的方式对模板文件进行修改,并生成代码文件。
在本发明的一个具体实施例中,所述标签文件包括内置标签和自定义标签。
在本发明的一个具体实施例中,所述标签管理模块和模板管理模块中均设置有可高亮关键字的在线代码编辑器。
在本发明的一个具体实施例中,所述模板生成模块还包括环境变量模块,所述环境变量模块用于将环境变量引入模板文件中。
在本发明的一个具体实施例中,所述模板管理模块还用于对模板文件进行分组。
在本发明的一个具体实施例中,所述实体管理模块还用于设置实体文件的继承关系及实体文件的类型
在本发明的一个具体实施例中,所述实体文件的类型为普通类或枚举类。
在本发明的一个具体实施例中,所述字段的数据类型为字符串、数字、日期、枚举类型或复杂类型。
在本发明的一个具体实施例中,所述复杂类型中的数据关系包括一对多、多对一和多对多。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
本发明主要为了适应用户已有框架的编码格式,生成用户需要的基础代码。代码生成器的主要目标是根据数据库表结构生成实体层与数据层代码,本发明将已有的程序框架称为模板(Template),而学生和教师被看做为实体或模型(Entity或Model),针对于每一个实体,可以根据实体的定义和模板通过增删改查的方式自动生成该实体的代码(Code)。
首先用户必须把基础的项目结构搭建好,然后利用该代码生成系统生成具有重复性质的代码,如增删改查页面和代码。本代码生成系统适合于用户有一套很完善的最佳实例,用户可以将这些最佳实例都抽象成一堆模板,有需求的时候,用户只需要做好实体定义,本代码生成系统将根据模板自动生成这些最佳实例的代码。
本代码生成系统并不依赖于开发语言、数据库和开发框架。无论是Java,还是PHP,还是Python,还是别的任何语言,只要是属于模型驱动的问题分析范畴,本代码生成系统都能生成对应的语言的代码。
本代码生成系统基于模板技术,用户只需搜集整理最佳实例即可,避免重复造轮子;最佳实例搜集越多,越有利于反过来对系统进行扩展,系统功能越强大;本代码生成系统具有内置模板,该支持内置模板可支持增删改查页面、实体对象、ORM、数据库文件的自动生成、文件上传下载、Excel文件导入导出、一对多关联关系生成、简单业务逻辑生成;本代码生成系统支持管理实体继承关系及字段的数据关系;具有在线代码编辑及目标代码在线预览的功能;具有灵活的映射机制,可以选择对部分实体生成对应的目标代码。
首先通过人工录入项目数据和模板数据,项目数据是指根据项目设计的 “实体”“字段”“字段间关联关系”“实体间继承关系”等;模板数据是指已有的程序框架,该数据根据不同的框架而有不同的模板设定,不因项目不同而改变,然后利用本代码生成系统将项目数据和模板数据生成代码文件,用户可对代码文件进行增加、修改、删除、查看、导入及导出等操作,并且该代码文件可完美支持继承、多态等不同模式。生成后的代码文件导入至编译器中即可运行相应的功能。用户只需定义需要的模板即可根据不同的需求而对生成的代码进行拓展。
项目管理模块,用于添加、修改和删除项目文件;数据包管理模块,用于添加、修改和删除项目文件中的数据包,并对数据包进行树状显示;实体管理模块,用于添加、修改和删除数据包中的实体文件,其支持普通类和枚举类的实体,并支持实体间的继承关系;字段管理模块,用于添加、修改和删除实体文件中的字段,其支持各种数据类型,比如:字符串、数字、日期、枚举类型、复杂类型等,并且复杂类型的关系支持一对多、多对一和多对多。
标签管理模块,用于添加、修改和删除标签文件,标签分为内置标签和自定义标签,其带有关键字高亮功能的在线代码编辑器,标签内容支持标准的EL表达式语言;模板管理模块具有模板的添加、修改和删除功能,其支持模板的分组功能,其带有关键字高亮的功能的在线代码编辑器,模板内容支持标准的EL表达式,以及自定义的“@标签”格式语言;环境变量模块,其根据实际需要,可在模板中引用这些环境变量,该环境变量是一些因实际情况而可能发生变化的值。
映射模块用于映射规则的添加、修改和删除,其主要是将字段、标签与模板文件中需要改动的部分一一对应,输出路径支持EL表达式以及“相对路径”功能,可灵活定义输出文件名称,支持过滤条件,过滤条件中支持EL表达式。
本代码生成系统优点:具有通用性,不依赖于开发语言、数据库和开发框架,不限制开发语言的种类;其安全性高,系统提供对操作模块、操作权限的安全支持,同时提供易于操作的权限管理手段,在系统底层提供对代码扩展的安全控制;其规范性好,系统设计、编码统一、文档齐全,为后期维护提供良好的基础;其可操作性强,结构简单易懂,便于项目组成员快速学习和后期改进。代码具有信息管理系统所需要的大部分基本功能,能后基于系进行快速的针对具体业务进行拓展,形成最终软件;可大大缩短项目研发周期,节约一半成本;可代码的质量得到了整体提高,最终代码稳定性更好,有利于企业的日常运行,加快企业信息化的进程,从而更早的通过信息化手段获利;可提高代码的整体质量,即使出现问题,由于操作代码均采用统一的模板生成,能够更快更好的发现并解决问题。从管理上来说,有了例子代码,新进人员有很好的参照,便于形成统一的开发风格,对项目开发管理具有一定的好处。
综上所述,借助本发明的上述技术方案,通用性好、安全性高、可操作性强;缩短研发周期,节约研发成本;具有良好的规范性,代码整体质量高。
本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。

Claims (9)

1.一种代码生成系统,其特征在于,其包括:
一模板生成模块,其包括:
标签管理模块,用于添加、修改和删除标签文件;
模板管理模块,用于将已有的程序框架制成模板文件,并用于添加、修改和删除模板文件;和
第一映射模块,用于将所述标签文件与模板文件中需要改动的部分一一映射,生成第一映射文件,并用于添加、修改和删除第一映射文件;和
一项目生成模块,其包括:
项目管理模块,用于添加、修改和删除项目文件;
数据包管理模块,用于添加、修改和删除项目文件中的数据包;
实体管理模块,用于添加、修改和删除数据包中实体文件;
字段管理模块,用于添加、修改和删除实体文件中的字段,并对字段的数据类型进行设置;
第二映射模块,用于将字段与所述第一映射文件中的标签文件一一映射,生成第二映射文件,并用于添加、修改和删除第二映射文件;和
代码生成模块,用于根据第二映射文件将字段以添加、修改或删除的方式对模板文件进行修改,并生成代码文件。
2.根据权利要求1所述的一种代码生成系统,其特征在于,所述标签文件包括内置标签和自定义标签。
3.根据权利要求2所述的一种代码生成系统,其特征在于,所述标签管理模块和模板管理模块中均设置有可高亮关键字的在线代码编辑器。
4.根据权利要求3所述的一种代码生成系统,其特征在于,所述模板生成模块还包括环境变量模块,所述环境变量模块用于将环境变量引入模板文件中。
5.根据权利要求4所述的一种代码生成系统,其特征在于,所述模板管理模块还用于对模板文件进行分组。
6.根据权利要求5所述的一种代码生成系统,其特征在于,所述实体管理模块还用于设置实体文件的继承关系及实体文件的类型。
7.根据权利要求6所述的一种代码生成系统,其特征在于,所述实体文件的类型为普通类或枚举类。
8.根据权利要求7所述的一种代码生成系统,其特征在于,所述字段的数据类型为字符串、数字、日期、枚举类型或复杂类型。
9.根据权利要求8所述的一种代码生成系统,其特征在于,所述复杂类型中的数据关系包括一对多、多对一和多对多。
CN201611145011.4A 2016-12-13 2016-12-13 一种代码生成系统 Active CN106648645B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611145011.4A CN106648645B (zh) 2016-12-13 2016-12-13 一种代码生成系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611145011.4A CN106648645B (zh) 2016-12-13 2016-12-13 一种代码生成系统

Publications (2)

Publication Number Publication Date
CN106648645A true CN106648645A (zh) 2017-05-10
CN106648645B CN106648645B (zh) 2020-07-17

Family

ID=58825277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611145011.4A Active CN106648645B (zh) 2016-12-13 2016-12-13 一种代码生成系统

Country Status (1)

Country Link
CN (1) CN106648645B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357942A (zh) * 2017-09-04 2017-11-17 山东达创网络科技股份有限公司 一种源代码辅助生成工具及其生成方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110313781A1 (en) * 2010-06-21 2011-12-22 Tsz-Tak Daniel Ho System and methods for creation and management of award-based cross promotions
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
CN103226478A (zh) * 2013-05-22 2013-07-31 北京金和软件股份有限公司 一种自动生成并使用代码的方法
CN104537012A (zh) * 2014-12-17 2015-04-22 广州酷狗计算机科技有限公司 数据处理方法和装置
CN105404692A (zh) * 2015-12-18 2016-03-16 深圳中兴网信科技有限公司 Web页面的生成方法及生成装置
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
US20160306612A1 (en) * 2015-04-14 2016-10-20 International Business Machines Corporation Determining errors and warnings corresponding to a source code revision

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110313781A1 (en) * 2010-06-21 2011-12-22 Tsz-Tak Daniel Ho System and methods for creation and management of award-based cross promotions
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
CN103226478A (zh) * 2013-05-22 2013-07-31 北京金和软件股份有限公司 一种自动生成并使用代码的方法
CN104537012A (zh) * 2014-12-17 2015-04-22 广州酷狗计算机科技有限公司 数据处理方法和装置
US20160306612A1 (en) * 2015-04-14 2016-10-20 International Business Machines Corporation Determining errors and warnings corresponding to a source code revision
CN105404692A (zh) * 2015-12-18 2016-03-16 深圳中兴网信科技有限公司 Web页面的生成方法及生成装置
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357942A (zh) * 2017-09-04 2017-11-17 山东达创网络科技股份有限公司 一种源代码辅助生成工具及其生成方法

Also Published As

Publication number Publication date
CN106648645B (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN103135976B (zh) 代码自动生成方法及装置
CN104360859B (zh) 一种可视化的服务开发方法和系统
CN102968306B (zh) 一种基于数据模型驱动的代码自动生成方法和系统
CN105677875B (zh) 一种基于标准数据元素统一约束的可视化建模平台
CN102663103B (zh) 可配置的自动化生成数据库和数据访问的方法
CN107357942A (zh) 一种源代码辅助生成工具及其生成方法
CN108427556B (zh) 一种表单设计解析方法及系统
CN116225429A (zh) 基于拖拽式组件框架的ipage网页式低代码开发平台
CN104679903B (zh) 一种数据表的操作方法及装置
CN110069246A (zh) 一种Java Web应用快速开发的平台系统及其应用
CN104317864B (zh) 一种基于iec61850逻辑节点的信息模型自动识别的方法
CN103383645A (zh) 代码生成方法及系统
CN103605705A (zh) 一种变电站scd配置文件的管理系统
CN102339314A (zh) 一种基于xml的跨终端的数据表单描述与展现方法
CN106873974A (zh) 智能代码生成引擎系统及方法
CN102495832A (zh) 软件开发过程中文档自动生成系统
CN112764737B (zh) 一种智慧低代码技术平台系统
CN110543303A (zh) 一种可视化业务平台
CN103810292A (zh) 一种图形界面的配置方法及装置
CN112966328B (zh) 基于BIM的应用Dynamo自动化创建共享参数方法
CN106648645A (zh) 一种代码生成系统
CN107273425A (zh) 一种基于orm框架的数据库开发方法及装置
CN103595549A (zh) 标准化信息管理系统
CN101329625A (zh) 专家系统开发平台
CN103020162B (zh) Cc2000模型转换导入d5000系统的方法

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 102206 2nd floor, building 4, courtyard 4, Life Science Park, Zhongguancun Life Science Park, Beiqing Road, Changping District, Beijing

Patentee after: Escort Technology Co.,Ltd.

Address before: 102206 2nd floor, building 4, courtyard 4, Life Science Park, Zhongguancun Life Science Park, Beiqing Road, Changping District, Beijing

Patentee before: NOVOTS TECHNOLOGIES Ltd.

CP02 Change in the address of a patent holder

Address after: Room 18d-05, unit 3, 15 / F, building 3, building 1-4, a48, Zhichun Road, Haidian District, Beijing

Patentee after: Escort Technology Co.,Ltd.

Address before: 102206 2nd floor, building 4, courtyard 4, Life Science Park, Zhongguancun Life Science Park, Beiqing Road, Changping District, Beijing

Patentee before: Escort Technology Co.,Ltd.

CP02 Change in the address of a patent holder
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A code generation system

Effective date of registration: 20220624

Granted publication date: 20200717

Pledgee: Zhongguancun Beijing technology financing Company limited by guarantee

Pledgor: Escort Technology Co.,Ltd.

Registration number: Y2022990000357

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231201

Granted publication date: 20200717

Pledgee: Zhongguancun Beijing technology financing Company limited by guarantee

Pledgor: Escort Technology Co.,Ltd.

Registration number: Y2022990000357

PC01 Cancellation of the registration of the contract for pledge of patent right