CN111694562A - 代码生成工具 - Google Patents
代码生成工具 Download PDFInfo
- Publication number
- CN111694562A CN111694562A CN202010549495.9A CN202010549495A CN111694562A CN 111694562 A CN111694562 A CN 111694562A CN 202010549495 A CN202010549495 A CN 202010549495A CN 111694562 A CN111694562 A CN 111694562A
- Authority
- CN
- China
- Prior art keywords
- codes
- code
- uml
- code generation
- generation tool
- 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
- 238000000034 method Methods 0.000 claims abstract description 16
- 230000004048 modification Effects 0.000 claims abstract description 9
- 238000012986 modification Methods 0.000 claims abstract description 9
- 238000012217 deletion Methods 0.000 claims abstract description 8
- 230000037430 deletion Effects 0.000 claims abstract description 8
- 238000007792 addition Methods 0.000 claims abstract description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000012360 testing method Methods 0.000 abstract description 13
- 238000011161 development Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000002910 structure generation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了代码生成工具,包括:自定义模板:用于程序开发人员通过uml、xml或sql定义数据结构,生成框架基础增加、删处、更改或查询的业务代码;框架:用于运行所述业务代码。本申请实现了对生成的代码,同时生成对应的单元测试代码的功能,节省了开发人员自己去编写单元测试类进行测试的问题,保证了在一开始出现的代码一定是正确的,节省了单独测试代码部分的时间,在之后开发中,对新的业务逻辑在原来生成的单元测试类的基础上进行扩展测试也很方便。
Description
技术领域
本发明涉及计算机软件,具体涉及一种代码生成工具。
背景技术
在web开发技术的发展过程中,由于需求的不断变化,变化的速度与频率不断加快,要求对新需求的响应速度要更快。基于对快速响应需求变化,快速开发的要求,我们提供了对框架基础代码,以及简单业务逻辑和测试类的代码生成工具,在一定的程度上节省了程序员可以省略的重复性操作,提高了开发效率。
发明内容
本发明的目的在于提供一种代码生成工具,解决现有技术在web开发技术的发展过程中,需求的不断变化给编程过程带来了大量重复性操作的问题。
为解决上述的技术问题,本发明采用以下技术方案:
一种代码生成工具,包括:
自定义模板:用于程序开发人员通过uml、xml或sql定义数据结构,生成框架基础增加、删处、更改或查询的业务代码;
框架:用于运行所述业务代码。
进一步的,所述业务代码带有sql表定义的基础属性及uml定义的简单业务逻辑。
代码生成工具(简称CGT)通过已经设置好的自定义的模版,使程序开发人员通过uml,xml,sql定义数据结构,生成框架基础增删改查及简单业务代码,生成出的基础代码已经带有之前sql表定义的基础属性,及uml定义的简单业务逻辑,代码会直接输出到对应的框架中,可以直接运行并看到运行效果。同时支持已经生成的java代码,实现对之前已经定义的sql,xml及uml三种语言描述的转化。
进一步的,还包括服务层自定义模块:用于自定义生成任意一层级或几层级的代码。
CGT支持分层生成代码,可以自定义生成任意一层级的代码,也可以生成多个层级的代码。之前的代码生成不支持分层生成,比如单独定义了一个服务层的接口,我们关注的方向只有这一层其他层对我们没有用途,使用该功能就可以实现我们这一部分的需求。
进一步的,每一个服务层定义至少一个与服务层自定义模块对接的接口。
CGT支持分层生成代码,可以自定义生成任意一层级的代码,也可以生成多个层级的代码,当使用者关注的方向只有这一层其他层对使用者没有用途时,可以单独定义一个服务层的接口。
进一步的,还包括格式转化模块:通过uml定义表结构以及表之间的关系,从而将uml转化为sql表结构,并能够将在xml中修改的表结构反馈到java代码中。
CGT可以通过自定义sql、uml、xml的方式生成对应的框架代码,并支持相互转化。程序设计人员通过uml定义表结构,和表之间的关系,通过CGT模版可以直接转化为开发人员使用的sql表结构,并可以直接在xml中修改表结构,然后反馈到java代码中。
进一步的,所述自定义模板能够根据框架的变化重新定义。
CGT可以通过自定义模版的方式,提高代码生成的灵活性,生成更加灵活的代码。该功能主要针对原框架变化的情况,如框架采用了某种新技术,但方法在原CGT中并没有定义,这时我们通过修改自定义引擎模版就可以达到快速实现该方法的生成,并把该功能实现在新生成的代码中。
CGT目前已经支持对程序设计人员定义的简单业务逻辑代码的生成,例如:表主键ID灵活定义结构生成业务流水ID或UUID,以及自定义结构的组合式ID。
对业务定义的逻辑删除:保留在数据表中,只是通过标志位判定删除;和物理删除:直接在业务表中删除,不保留数据;
通过定义查询字段,在生成代码对应的jsp或html页面中,页面可以直接出现用户定义好的跟需求一致的字段查询,如果不定义则默认生成全部字段的查询;
原业务的批量添加、批量修改、批量删除;
自定义枚举:该功能因为无法使用户定义的枚举直接转化为英文,特采用拼音形式进行转化,如性别字段,1为男2为女,反映到java代码中则为nan,nv的拼音;
模版定义功能是因为支持一些更负责的业务逻辑,我们可以修改这部分模版达到设计需求。
与现有技术相比,本发明的有益效果至少是如下之一:
本申请实现了对生成的代码,同时生成对应的单元测试代码的功能,节省了开发人员自己去编写单元测试类进行测试的问题,保证了在一开始出现的代码一定是正确的,节省了单独测试代码部分的时间,在之后开发中,对新的业务逻辑在原来生成的单元测试类的基础上进行扩展测试也很方便。
附图说明
图1为本发明的代码生成流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1:
一种代码生成工具,如图1所示,包括:
自定义模板:用于程序开发人员通过uml、xml或sql定义数据结构,生成框架基础增加、删处、更改或查询的业务代码;
框架:用于运行所述业务代码。
实施例2:
本实施例在实施例1的基础上,进一步限定了:所述业务代码带有sql表定义的基础属性及uml定义的简单业务逻辑。
代码生成工具(简称CGT)通过已经设置好的自定义的模版,使程序开发人员通过uml,xml,sql定义数据结构,生成框架基础增删改查及简单业务代码,生成出的基础代码已经带有之前sql表定义的基础属性,及uml定义的简单业务逻辑,代码会直接输出到对应的框架中,可以直接运行并看到运行效果。同时支持已经生成的java代码,实现对之前已经定义的sql,xml及uml三种语言描述的转化。
实施例3:
本实施例在实施例1的基础上,进一步限定了:还包括服务层自定义模块:用于自定义生成任意一层级或几层级的代码。
CGT支持分层生成代码,可以自定义生成任意一层级的代码,也可以生成多个层级的代码。之前的代码生成不支持分层生成,比如单独定义了一个服务层的接口,我们关注的方向只有这一层其他层对我们没有用途,使用该功能就可以实现我们这一部分的需求。
实施例4:
本实施例在实施例1的基础上,进一步限定了:每一个服务层定义至少一个与服务层自定义模块对接的接口。
CGT支持分层生成代码,可以自定义生成任意一层级的代码,也可以生成多个层级的代码,当使用者关注的方向只有这一层其他层对使用者没有用途时,可以单独定义一个服务层的接口。
实施例5:
本实施例在实施例1的基础上,进一步限定了:还包括格式转化模块:通过uml定义表结构以及表之间的关系,从而将uml转化为sql表结构,并能够将在xml中修改的表结构反馈到java代码中。
CGT可以通过自定义sql、uml、xml的方式生成对应的框架代码,并支持相互转化。程序设计人员通过uml定义表结构,和表之间的关系,通过CGT模版可以直接转化为开发人员使用的sql表结构,并可以直接在xml中修改表结构,然后反馈到java代码中。
实施例6:
本实施例在实施例1的基础上,进一步限定了:所述自定义模板能够根据框架的变化重新定义。
CGT可以通过自定义模版的方式,提高代码生成的灵活性,生成更加灵活的代码。该功能主要针对原框架变化的情况,如框架采用了某种新技术,但方法在原CGT中并没有定义,这时我们通过修改自定义引擎模版就可以达到快速实现该方法的生成,并把该功能实现在新生成的代码中。
尽管这里参照本发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开、附图和权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变形和改进外,对于本领域技术人员来说,其他的用途也将是明显的。
Claims (6)
1.一种代码生成工具,其特征在于,包括:
自定义模板:用于程序开发人员通过uml、xml或sql定义数据结构,生成框架基础增加、删处、更改或查询的业务代码;
框架:用于运行所述业务代码。
2.根据权利要求1所述的代码生成工具,其特征在于,所述业务代码带有sql表定义的基础属性及uml定义的简单业务逻辑。
3.根据权利要求1所述的代码生成工具,其特征在于,还包括服务层自定义模块:用于自定义生成任意一层级或几层级的代码。
4.根据权利要求1所述的代码生成工具,其特征在于,每一个服务层定义至少一个与服务层自定义模块对接的接口。
5.根据权利要求1所述的代码生成工具,其特征在于,还包括格式转化模块:通过uml定义表结构以及表之间的关系,从而将uml转化为sql表结构,并能够将在xml中修改的表结构反馈到java代码中。
6.根据权利要求1所述的代码生成工具,其特征在于,所述自定义模板能够根据框架的变化重新定义。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010549495.9A CN111694562A (zh) | 2020-06-16 | 2020-06-16 | 代码生成工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010549495.9A CN111694562A (zh) | 2020-06-16 | 2020-06-16 | 代码生成工具 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111694562A true CN111694562A (zh) | 2020-09-22 |
Family
ID=72481466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010549495.9A Pending CN111694562A (zh) | 2020-06-16 | 2020-06-16 | 代码生成工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111694562A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978581A (en) * | 1997-12-02 | 1999-11-02 | Electronic Data Systems Corporation | Object-oriented code generation system and method |
CN105260189A (zh) * | 2015-11-02 | 2016-01-20 | 江苏马上游科技股份有限公司 | 基于模型驱动生成代码的方法及系统 |
CN105487864A (zh) * | 2015-11-26 | 2016-04-13 | 北京京东尚科信息技术有限公司 | 代码自动生成的方法和装置 |
CN109359112A (zh) * | 2018-10-15 | 2019-02-19 | 行吟信息科技(上海)有限公司 | 一种代码的自动生成方法及代码生成器 |
CN109634593A (zh) * | 2018-04-17 | 2019-04-16 | 广东电网有限责任公司 | 一种代码自动生成方法 |
US20190163452A1 (en) * | 2017-11-30 | 2019-05-30 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating program code |
-
2020
- 2020-06-16 CN CN202010549495.9A patent/CN111694562A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978581A (en) * | 1997-12-02 | 1999-11-02 | Electronic Data Systems Corporation | Object-oriented code generation system and method |
CN105260189A (zh) * | 2015-11-02 | 2016-01-20 | 江苏马上游科技股份有限公司 | 基于模型驱动生成代码的方法及系统 |
CN105487864A (zh) * | 2015-11-26 | 2016-04-13 | 北京京东尚科信息技术有限公司 | 代码自动生成的方法和装置 |
US20190163452A1 (en) * | 2017-11-30 | 2019-05-30 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating program code |
CN109634593A (zh) * | 2018-04-17 | 2019-04-16 | 广东电网有限责任公司 | 一种代码自动生成方法 |
CN109359112A (zh) * | 2018-10-15 | 2019-02-19 | 行吟信息科技(上海)有限公司 | 一种代码的自动生成方法及代码生成器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101841515B (zh) | 可变目标的协议数据单元编解码代码自动生成的实现方法 | |
CN101339500B (zh) | 基于xml模式的数据绑定应用程序接口生成方法 | |
US20160299745A1 (en) | Development method for web development system, and web development system | |
CN108037916B (zh) | 一种基于web的图形化业务建模方法 | |
CN102279750B (zh) | 一种基于领域知识共享的迭代式代码生成方法 | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN103049251B (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN101714078A (zh) | 代码生成方法及装置 | |
US11677807B2 (en) | System and method to standardize and improve implementation efficiency of user interface content | |
CN104615713A (zh) | 一种基于多数据库类型的sql执行方法和装置 | |
CN103488738A (zh) | 一种自动实现java对象及数据表sql文件的方法及系统 | |
CN103064916B (zh) | EminDI数据整合引擎及报表生成方法 | |
CN101706823B (zh) | 定制化数据库查询系统及查询方法 | |
CN102109990A (zh) | 报表智能化显示系统及方法 | |
CN114371845A (zh) | 表单生成方法及装置 | |
CN113703755A (zh) | 代码生成方法及代码生成装置 | |
CN111694562A (zh) | 代码生成工具 | |
CN110941655A (zh) | 一种数据格式转换方法及装置 | |
CN101794223A (zh) | Wade服务消息架构的设计方法 | |
Fujima | Building a meme media platform with a JavaScript MVC framework and HTML5 | |
CN108845793B (zh) | 一种orm设计方法及装置 | |
CN116339696A (zh) | 一种可扩展自动生成跨平台多语言接口的系统及方法 | |
JP2988911B1 (ja) | プログラム自動生成装置 | |
CN112416305A (zh) | 一种基于VisualStudio的快速开发方法 | |
CN102109953B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200922 |
|
RJ01 | Rejection of invention patent application after publication |