CN110851129A - 数据管理类的软件系统代码自动生成方法 - Google Patents
数据管理类的软件系统代码自动生成方法 Download PDFInfo
- Publication number
- CN110851129A CN110851129A CN201911105772.0A CN201911105772A CN110851129A CN 110851129 A CN110851129 A CN 110851129A CN 201911105772 A CN201911105772 A CN 201911105772A CN 110851129 A CN110851129 A CN 110851129A
- Authority
- CN
- China
- Prior art keywords
- code
- file
- directory
- entity mapping
- software 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013523 data management Methods 0.000 title claims abstract description 15
- 238000013507 mapping Methods 0.000 claims abstract description 27
- 238000012360 testing method Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims abstract description 7
- 230000001502 supplementing effect Effects 0.000 claims abstract description 3
- 238000013461 design Methods 0.000 claims description 5
- 239000013589 supplement Substances 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction 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
本发明公开了数据管理类的软件系统代码自动生成方法,包括:完成软件开发前置工作,以建立软件系统所需要的数据库及相关字段;编写代码生成工具,通过所述代码生成工具读取数据库内的数据结构元数据;建立数据结构元数据的实体映射类变量及代码文件生成逻辑;根据实体映射类产量,采用模版引擎语法结合代码规范,编写模版文件;配置各个代码文件生成的目录;运行代码生成工具,将表结构信息加载到实体映射类变量;将加载后的实体映射类变量遍历输入到模版文件中,生成代码文件至指定的目录;对目录内的代码文件进行微调,补充个性的业务逻辑,完成增删改查功能及单元测试编码工作。对指定目录的具体代码进行人工调整,以补充个性业务逻辑。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据管理类的软件系统代码自动生成方法。
背景技术
在软件开发过程中,应用软件中的数据管理类的软件系统,很大一部分工作都是对各功能模块的增、删、改、查及对应的单元测试进行代码编写,在特定的开发语言及技术框架下,除了各模块数据库结构(表、字段)不一样外,很大一部分的代码结构是相同的。如何通过引入模板引擎技术为相同代码结构的文件定制模板,并将数据库结构输入到模板文件中,自动生成代码文件到指定文件目录是有意义的研究方向。在此基础上,软件开发人员只需要做少量的代码调整,即可完成增、删、改、查功能及对应的单元测试代码编写,将大大减少软件开发人员的工作,减少代码错误,提高代码质量。
公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
本发明实施例提供了一种数据管理类的软件系统代码自动生成方法,旨在解决上述问题。以自动完成数据管理类的软件系统中增删改查及相应单元测试代码的编写工作,目的在于减少开发工作量的同时提高代码质量。
本发明实施例提供了一种数据管理类的软件系统代码自动生成方法,包括以下步骤:
完成软件开发前置工作,以建立软件系统所需要的数据库及相关字段;
编写代码生成工具,通过所述代码生成工具读取数据库内的数据结构元数据;
建立数据结构元数据的实体映射类变量及代码文件生成逻辑;
根据实体映射类产量,采用模版引擎语法结合代码规范,编写模版文件;
配置各个代码文件生成的目录;
运行代码生成工具,将表结构信息加载到实体映射类变量;
将加载后的实体映射类变量遍历输入到模版文件中,生成代码文件至指定的目录;
对目录内的代码文件进行微调,补充个性的业务逻辑,完成增删改查功能及单元测试编码工作。
其进一步技术方案为,所述步骤完成软件开发前置工作,以建立软件系统所需要的数据库及相关字段,包括以下步骤:
确定软件开发语言;
根据软件开发语言进行技术框架选型;
按照技术框架制定代码规范;
根据代码规范完成数据库建模设计。
其进一步技术方案为,所述步骤运行代码生成工具,将表结构信息加载到实体映射类变量中的表结构信息包括表名、字段名、数据类型、长度、是否必填和默认值信息。
其进一步技术方案为,所述步骤建立数据结构元数据的实体映射类变量及代码文件生成逻辑中的数据结构元数据实体映射类变量包括:模块实体类变量、表实体类变量和字段实体类变量。
其进一步技术方案为,所述步骤配置各个代码文件生成的目录是指按照软件项目工程目录配置各个代码文件生成的目录。
本发明实施例提供了数据管理类的软件系统代码自动生成方法。其中,所述方法包括:完成软件开发前置工作,确定使用的开发语言和技术框架选型,制订代码规范,完成数据库建模设计;引入模板引擎技术,根据开发语言语法、技术架构、代码规范、代码文件样本、模板引擎技术语法编写模板文件;编写代码生成工具,该工具能从指定数据库读取数据结构元数据,或从数据库模型文件读取数据结构元数据,依据定制的规则,调用模板引擎技术将数据结构元数据(数据库表名、字段名、数据类型、长度、是否必填、默认值等)输入到模板文件,生成代码文件到指定目录;开发人员运行代码生成工具生成代码,并对自动生成的代码做少量的调整,补充自己特定的业务逻辑,即可完成软件开发工作。
本方法主要为数据管理类的软件系统中增删改查功能及对应单元测试等代码结构比较固定,没有特定复杂的业务逻辑的代码编写提供一种代码自动生成思路,减少代码编写工作,提高代码规范和质量,为软件开发人员释放出更多时间,专注于特定业务逻辑部分代码的编写。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据管理类的软件系统代码自动生成方法的流程示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本发明实施例提供的数据管理类的软件系统代码自动生成方法的流程示意图。如图所示,一种数据管理类的软件系统代码自动生成方法,包括以下步骤:
S100完成软件开发前置工作,以建立软件系统所需要的数据库及相关字段。
S200编写代码生成工具,通过代码生成工具读取数据库内的数据结构元数据;
S300建立数据结构元数据的实体映射类变量及代码文件生成逻辑;
S400根据实体映射类产量,采用模版引擎语法结合代码规范,编写模版文件,包含前端html文件、后端Java控制器类文件、业务层接口类文件、业务层实现类文件、POJO实体类文件、持久层接口类文件、Mybatis的Mapping.xml配置文件、单元测试类文件。
S500配置各个代码文件生成的目录;
S600运行代码生成工具,将表结构信息加载到实体映射类变量;
S700将加载后的实体映射类变量遍历输入到模版文件中,生成代码文件至指定的目录;
S800对目录内的代码文件进行微调,补充个性的业务逻辑,完成增删改查功能及单元测试编码工作。
其中步骤S100完成软件开发前置工作,以建立软件系统所需要的数据库及相关字段,包括以下步骤:
S101确定软件开发语言,以Java web开发为例。
S102根据软件开发语言进行技术框架选型,以Java的SSM(Spring MVC+Spring+Mybatis)为例,增删改查功能通常会有前端html文件、后端Java控制器类、业务层接口类、业务层实现类、POJO实体类、持久层接口类、Mybatis的Mapping.xml配置文件。
S103按照技术框架制定代码规范;
S104根据代码规范完成数据库建模设计。
其中步骤S600运行代码生成工具,将表结构信息加载到实体映射类变量中的表结构信息包括表名、字段名、数据类型、长度、是否必填和默认值信息。
其中步骤S300建立数据结构元数据的实体映射类变量及代码文件生成逻辑中的数据结构元数据实体映射类变量包括:模块实体类变量、表实体类变量和字段实体类变量。
其中步骤S500配置各个代码文件生成的目录是指按照软件项目工程目录配置各个代码文件生成的目录。
本发明提供的数据管理类的软件系统代码自动生成方法,以自动完成数据管理类的软件系统中增删改查及相应单元测试代码的编写工作,减少开发工作量的同时提高代码质量。本方法主要为数据管理类的软件系统中增删改查功能及对应单元测试等代码结构比较固定,没有特定复杂的业务逻辑的代码编写提供一种代码自动生成思路,减少代码编写工作,提高代码规范和质量,为软件开发人员释放出更多时间,专注于特定业务逻辑部分代码的编写。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (5)
1.数据管理类的软件系统代码自动生成方法,其特征在于,包括以下步骤:
完成软件开发前置工作,以建立软件系统所需要的数据库及相关字段;
编写代码生成工具,通过所述代码生成工具读取数据库内的数据结构元数据;
建立数据结构元数据的实体映射类变量及代码文件生成逻辑;
根据实体映射类产量,采用模版引擎语法结合代码规范,编写模版文件;
配置各个代码文件生成的目录;
运行代码生成工具,将表结构信息加载到实体映射类变量;
将加载后的实体映射类变量遍历输入到模版文件中,生成代码文件至指定的目录;
对目录内的代码文件进行微调,补充个性的业务逻辑,完成增删改查功能及单元测试编码工作。
2.根据权利要求1所述的数据管理类的软件系统代码自动生成方法,其特征在于,所述步骤完成软件开发前置工作,以建立软件系统所需要的数据库及相关字段,包括以下步骤:
确定软件开发语言;
根据软件开发语言进行技术框架选型;
按照技术框架制定代码规范;
根据代码规范完成数据库建模设计。
3.根据权利要求1所述的数据管理类的软件系统代码自动生成方法,其特征在于,所述步骤运行代码生成工具,将表结构信息加载到实体映射类变量中的表结构信息包括表名、字段名、数据类型、长度、是否必填和默认值信息。
4.根据权利要求1所述的数据管理类的软件系统代码自动生成方法,其特征在于,所述步骤建立数据结构元数据的实体映射类变量及代码文件生成逻辑中的数据结构元数据实体映射类变量包括:模块实体类变量、表实体类变量和字段实体类变量。
5.根据权利要求1所述的数据管理类的软件系统代码自动生成方法,其特征在于,所述步骤配置各个代码文件生成的目录是指按照软件项目工程目录配置各个代码文件生成的目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911105772.0A CN110851129A (zh) | 2019-11-13 | 2019-11-13 | 数据管理类的软件系统代码自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911105772.0A CN110851129A (zh) | 2019-11-13 | 2019-11-13 | 数据管理类的软件系统代码自动生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110851129A true CN110851129A (zh) | 2020-02-28 |
Family
ID=69601060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911105772.0A Pending CN110851129A (zh) | 2019-11-13 | 2019-11-13 | 数据管理类的软件系统代码自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851129A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767045A (zh) * | 2020-03-06 | 2020-10-13 | 江苏金顺软件有限公司 | 一种管理软件模型快速生成方法 |
CN111881579A (zh) * | 2020-07-27 | 2020-11-03 | 成都安世亚太科技有限公司 | 一种复杂动态数据模型管理方法 |
CN111966340A (zh) * | 2020-08-20 | 2020-11-20 | 杭州安恒信息技术股份有限公司 | 一种基于Mybatis框架的代码生成方法、装置、设备及介质 |
CN112346720A (zh) * | 2020-10-22 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 基于sql生成自定义代码的方法、设备和电子装置 |
CN112596706A (zh) * | 2020-12-15 | 2021-04-02 | 用友网络科技股份有限公司 | 模式化代码生成方法、装置和计算机可读存储介质 |
CN112799657A (zh) * | 2021-01-27 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种简化开发的代码自动生成系统 |
CN113176877A (zh) * | 2021-05-27 | 2021-07-27 | 北京格瑞拉科技有限公司 | 实体类生成方法、装置及存储介质 |
CN113590115A (zh) * | 2021-07-30 | 2021-11-02 | 北京国腾联信科技有限公司 | 一种业务系统代码自动生成方法及装置 |
CN116431157A (zh) * | 2023-04-19 | 2023-07-14 | 安元科技股份有限公司 | 一种自动生成代码的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968306A (zh) * | 2012-11-29 | 2013-03-13 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和系统 |
CN103500087A (zh) * | 2013-09-17 | 2014-01-08 | 福建亿榕信息技术有限公司 | 一种基于maven插件和freemarker模版的代码生成方法及装置 |
CN104049957A (zh) * | 2013-03-13 | 2014-09-17 | 成都泰聚泰科技有限公司 | 基于星形结构的通用业务模型的快速建模框架 |
CN105824619A (zh) * | 2016-03-10 | 2016-08-03 | 四川交通职业技术学院 | 基于Spring MVC、Apache Shiro、MyBatis框架整合的代码生成器 |
CN110032369A (zh) * | 2019-04-24 | 2019-07-19 | 成都市映潮科技股份有限公司 | 一种代码自动生成方法、装置及介质 |
CN110069246A (zh) * | 2019-03-28 | 2019-07-30 | 北京众智益成科技有限公司 | 一种Java Web应用快速开发的平台系统及其应用 |
-
2019
- 2019-11-13 CN CN201911105772.0A patent/CN110851129A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968306A (zh) * | 2012-11-29 | 2013-03-13 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和系统 |
CN104049957A (zh) * | 2013-03-13 | 2014-09-17 | 成都泰聚泰科技有限公司 | 基于星形结构的通用业务模型的快速建模框架 |
CN103500087A (zh) * | 2013-09-17 | 2014-01-08 | 福建亿榕信息技术有限公司 | 一种基于maven插件和freemarker模版的代码生成方法及装置 |
CN105824619A (zh) * | 2016-03-10 | 2016-08-03 | 四川交通职业技术学院 | 基于Spring MVC、Apache Shiro、MyBatis框架整合的代码生成器 |
CN110069246A (zh) * | 2019-03-28 | 2019-07-30 | 北京众智益成科技有限公司 | 一种Java Web应用快速开发的平台系统及其应用 |
CN110032369A (zh) * | 2019-04-24 | 2019-07-19 | 成都市映潮科技股份有限公司 | 一种代码自动生成方法、装置及介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767045A (zh) * | 2020-03-06 | 2020-10-13 | 江苏金顺软件有限公司 | 一种管理软件模型快速生成方法 |
CN111881579A (zh) * | 2020-07-27 | 2020-11-03 | 成都安世亚太科技有限公司 | 一种复杂动态数据模型管理方法 |
CN111966340A (zh) * | 2020-08-20 | 2020-11-20 | 杭州安恒信息技术股份有限公司 | 一种基于Mybatis框架的代码生成方法、装置、设备及介质 |
CN112346720A (zh) * | 2020-10-22 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 基于sql生成自定义代码的方法、设备和电子装置 |
CN112596706A (zh) * | 2020-12-15 | 2021-04-02 | 用友网络科技股份有限公司 | 模式化代码生成方法、装置和计算机可读存储介质 |
CN112799657A (zh) * | 2021-01-27 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种简化开发的代码自动生成系统 |
CN113176877A (zh) * | 2021-05-27 | 2021-07-27 | 北京格瑞拉科技有限公司 | 实体类生成方法、装置及存储介质 |
CN113590115A (zh) * | 2021-07-30 | 2021-11-02 | 北京国腾联信科技有限公司 | 一种业务系统代码自动生成方法及装置 |
CN116431157A (zh) * | 2023-04-19 | 2023-07-14 | 安元科技股份有限公司 | 一种自动生成代码的方法 |
CN116431157B (zh) * | 2023-04-19 | 2024-03-08 | 安元科技股份有限公司 | 一种自动生成代码的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851129A (zh) | 数据管理类的软件系统代码自动生成方法 | |
US20080005747A1 (en) | System and method for object state management | |
US6226777B1 (en) | Method and system for improving the performance of a circuit design verification tool | |
CN103870308A (zh) | 一种数据处理方法及装置 | |
CN109063362B (zh) | 航电软件接口控制文件设计管理系统 | |
CN110990274B (zh) | 一种生成测试案例的数据处理方法、装置及系统 | |
US6629307B2 (en) | Method for ensuring correct pin assignments between system board connections using common mapping files | |
CN112988862A (zh) | 一种可配置化的数据可视化方法和装置 | |
Gómez et al. | CRUDyLeaf: a DSL for generating spring boot REST APIs from entity CRUD operations | |
JP3186117B2 (ja) | データ中心型ソフトウエア部品によるプログラム自動生成システム | |
KR20030044959A (ko) | 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법 | |
CN111427582B (zh) | Rtl代码的管理方法、装置、设备及计算机可读存储介质 | |
CN115525534A (zh) | 基于swagger的接口测试的测试用例生成方法、生成平台 | |
US7319937B2 (en) | System and method for programming measuring equipment offline | |
CN115934753A (zh) | 作业调度配置信息生成方法及其装置 | |
Tkachuk et al. | Research of possibilities of default refactoring actions in Swift language | |
US11366746B2 (en) | System for application code development build, scan, and test environment | |
Ullah et al. | Template-based automatic code generation for web application and APIs using class diagram | |
CN112256978B (zh) | 一种基于数据模型的数据处理方法、装置、介质 | |
CN114356430A (zh) | 一种基于airflow调度系统的DAG依赖配置工具 | |
CN117873468A (zh) | 一种基于规则引擎的代码生成系统及方法 | |
Malshakov | Interoperability Application Package | |
CN117075866A (zh) | 一种数据字典翻译方法 | |
JPH04172529A (ja) | データ中心型ソフトウエア部品によるプログラム自動生成方式 | |
CN117111935A (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: 20200228 |
|
RJ01 | Rejection of invention patent application after publication |