CN112817592A - 一种基于实体注解的自动代码生成方法 - Google Patents
一种基于实体注解的自动代码生成方法 Download PDFInfo
- Publication number
- CN112817592A CN112817592A CN202110105422.5A CN202110105422A CN112817592A CN 112817592 A CN112817592 A CN 112817592A CN 202110105422 A CN202110105422 A CN 202110105422A CN 112817592 A CN112817592 A CN 112817592A
- Authority
- CN
- China
- Prior art keywords
- entity
- class
- generating
- field
- annotation
- 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 11
- 238000013507 mapping Methods 0.000 claims abstract description 5
- 230000000694 effects Effects 0.000 claims abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000012163 sequencing technique Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition 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
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Abstract
本发明公开了一种基于实体注解的自动代码生成方法,包括如下步骤:步骤1:定义实体关系模型,编写实体类代码及其注解;步骤2:读取指定实体类的全部类、字段及注解信息,在目标数据库生成数据表、字段;步骤3:根据类、字段基本信息,生成服务端实体映射、数据访问、业务逻辑、界面控制层代码;步骤4:生成前端代码;步骤5:运行效果检测。本发明的有益效果:根据字段类型,自动生成对应的输入控件和检查代码,支持日期、数字、枚举、文件类型等常见字段类型;支持外键字段列表显示,支持表单外键字段单选、多选录入和展示;根据实体类元数据信息,支持字段分组、个性化排序,支持自动生成简单、复杂类表单代码。
Description
技术领域
本发明涉及计算机领域,具体的,涉及一种基于实体注解的自动代码生成方法。
背景技术
MIS(Management Infomation System)管理信息系统、行业应用的开发,涉及到大量的信息增、删、改、查的基本操作功能(简称CURD),特别是一些基于表单的信息系统,这些基本操作会占到整个项目开发工作量的50%以上。该类开发有以下特点:业务简单,技术含量低;重复度高;编码工作量大、耗时长。
随着ORM技术的应用,业界也有一些针对该类CURD的自动代码生成,可以自动生成基于ORM技术的实体映射、数据实体、数据访问、业务逻辑和界面展示层代码,帮助开发人员简化开发流程,减少开发工作量,但大部分解决方案存在以下问题:自动生成的代码偏重于后台服务代码,前端代码过于简单;不能根据数据字段的类型,生成不同的输入控件,例如日期类型字段,自动生成日期类控件代码;不能依据数据库设计的外键关系,自动生成外键实体的文本显示和录入界面;不能方便的根据实体信息特点,自动生成不同风格的表单,例如对复杂表单,可能需要多列展示、分区展示等。
发明内容
本发明的目的在于,针对上述问题,提出一种基于实体注解的自动代码生成方式。
一种基于实体注解的自动代码生成方法,包括如下步骤:
步骤1:定义实体关系模型,编写实体类代码及其注解;
步骤2:读取指定实体类的全部类、字段及注解信息,在目标数据库生成数据表、字段;
步骤3:根据类、字段基本信息,生成服务端实体映射、数据访问、业务逻辑、界面控制层代码;
步骤4:生成前端代码;
步骤5:运行效果检测。
所述步骤4具体包括如下子步骤:
步骤41:根据类注解,选择对应的风格模板;
步骤42:根据列表类注解,生成实体类列表页面。
步骤43:根据字段类注解,生成包含自动控件、外键选择器、字段分组和提交检查规则的Form表单页面。
优选的,风格模板采用Freemarker格式。
本发明的有益效果:通过元数据、模版技术,提供更加复杂、灵活的前端代码自动框架,更符合实战要求。根据字段类型,自动生成对应的输入控件和检查代码,支持日期、数字、枚举、文件类型等常见字段类型;支持外键字段列表显示,支持表单外键字段单选、多选录入和展示;根据实体类元数据信息,支持字段分组、个性化排序,支持自动生成简单、复杂类表单代码。
附图说明
图1为本发明的工作流程图。
具体实施方式
下面结合附图对本发明作进一步的说明。
如图1所示,一种基于实体注解的自动代码生成方法,包括如下步骤:
步骤1:定义实体关系模型,编写实体类代码及其注解;
步骤2:读取指定实体类的全部类、字段及注解信息,在目标数据库生成数据表、字段;
步骤3:根据类、字段基本信息,生成服务端实体映射、数据访问、业务逻辑、界面控制层代码;
步骤4:生成前端代码;
步骤5:运行效果检测。
所述步骤4具体包括如下子步骤:
步骤41:根据类注解,选择对应的风格模板;
步骤42:根据列表类注解,生成实体类列表页面。
步骤43:根据字段类注解,生成包含自动控件、外键选择器、字段分组和提交检查规则的Form表单页面。
需要理解的是,风格模板采用Freemarker格式。
需要说明的是,表1为实体类新增注解。
表1实体类新增注解
注解对象 | 注解 | 功能说明 |
实体类属性 | @Enun | 枚举字段 |
实体类属性 | @Dict | 数据字典字段 |
实体类属性 | @ForeignKey | 外键字段 |
实体类属性 | @Group | 字段分组 |
实体类属性 | @ListColumn | 列表展示字段 |
实体类属性 | @Query | 查询检索器字段 |
实体类 | @FormStyle | 指定表单风格 |
Claims (3)
1.一种基于实体注解的自动代码生成方法,其特征在于,包括如下步骤:
步骤1:定义实体关系模型,编写实体类代码及其注解;
步骤2:读取指定实体类的全部类、字段及注解信息,在目标数据库生成数据表、字段;
步骤3:根据类、字段基本信息,生成服务端实体映射、数据访问、业务逻辑、界面控制层代码;
步骤4:生成前端代码;
步骤5:运行效果检测。
2.如权利要求1所述一种基于实体注解的自动代码生成方法,其特征在于,所述步骤4具体包括如下子步骤:
步骤41:根据类注解,选择对应的风格模板;
步骤42:根据列表类注解,生成实体类列表页面;
步骤43:根据字段类注解,生成包含自动控件、外键选择器、字段分组和提交检查规则的Form表单页面。
3.如权利要求2所述一种基于实体类注解的自动代码生成方法,其特征在于,风格模板采用Freemarker格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110105422.5A CN112817592A (zh) | 2021-01-26 | 2021-01-26 | 一种基于实体注解的自动代码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110105422.5A CN112817592A (zh) | 2021-01-26 | 2021-01-26 | 一种基于实体注解的自动代码生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817592A true CN112817592A (zh) | 2021-05-18 |
Family
ID=75859467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110105422.5A Pending CN112817592A (zh) | 2021-01-26 | 2021-01-26 | 一种基于实体注解的自动代码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817592A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501436A (zh) * | 2023-06-29 | 2023-07-28 | 成都融见软件科技有限公司 | 最大化显示芯片设计代码注解的方法、电子设备和介质 |
WO2023193135A1 (zh) * | 2022-04-06 | 2023-10-12 | 京东方科技集团股份有限公司 | 业务编码解释织入方法、业务服务系统和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104049957A (zh) * | 2013-03-13 | 2014-09-17 | 成都泰聚泰科技有限公司 | 基于星形结构的通用业务模型的快速建模框架 |
CN106648587A (zh) * | 2016-09-28 | 2017-05-10 | 福州宇嘉软件科技有限公司 | 一种基于注解的Web应用代码生成方法 |
CN109189379A (zh) * | 2018-09-04 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 代码生成方法和装置 |
CN110941423A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市航通智能技术有限公司 | 一种基于Java的快速生成代码方法 |
US20200272438A1 (en) * | 2019-02-26 | 2020-08-27 | Sap Se | Generating Interfaces From Annotated Entity Definitions For Developing Applications |
-
2021
- 2021-01-26 CN CN202110105422.5A patent/CN112817592A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104049957A (zh) * | 2013-03-13 | 2014-09-17 | 成都泰聚泰科技有限公司 | 基于星形结构的通用业务模型的快速建模框架 |
CN106648587A (zh) * | 2016-09-28 | 2017-05-10 | 福州宇嘉软件科技有限公司 | 一种基于注解的Web应用代码生成方法 |
CN109189379A (zh) * | 2018-09-04 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 代码生成方法和装置 |
US20200272438A1 (en) * | 2019-02-26 | 2020-08-27 | Sap Se | Generating Interfaces From Annotated Entity Definitions For Developing Applications |
CN110941423A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市航通智能技术有限公司 | 一种基于Java的快速生成代码方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193135A1 (zh) * | 2022-04-06 | 2023-10-12 | 京东方科技集团股份有限公司 | 业务编码解释织入方法、业务服务系统和存储介质 |
CN116501436A (zh) * | 2023-06-29 | 2023-07-28 | 成都融见软件科技有限公司 | 最大化显示芯片设计代码注解的方法、电子设备和介质 |
CN116501436B (zh) * | 2023-06-29 | 2023-09-08 | 成都融见软件科技有限公司 | 最大化显示芯片设计代码注解的方法、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105144080B (zh) | 用于元数据管理的系统 | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
CN100388289C (zh) | 面向复杂装备多学科设计软件集成的参数映射方法 | |
CN115061721A (zh) | 一种报表生成方法、装置、计算机设备及存储介质 | |
CN112817592A (zh) | 一种基于实体注解的自动代码生成方法 | |
US20120158742A1 (en) | Managing documents using weighted prevalence data for statements | |
CN109299074B (zh) | 一种基于模板化数据库视图的数据校验方法及系统 | |
CN109871406B (zh) | 通用监控报表平台的设计方法 | |
CN104536987A (zh) | 一种查询数据的方法及装置 | |
CN111125116A (zh) | 定位业务表中代码字段及对应代码表的方法及系统 | |
CN103246753A (zh) | 一种根据数据库结构生成实体元数据模型的方法 | |
CN114444465A (zh) | 信息抽取方法、装置、设备及存储介质 | |
CN112364041B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN102479072B (zh) | 一种多表头报表的生成方法、装置及终端 | |
CN116680290A (zh) | 基于数据中台的数据查询方法及装置 | |
WO2022262240A1 (zh) | 数据处理方法、电子设备及存储介质 | |
CN116227454A (zh) | 一种通用的自动化报告生成方法及系统 | |
CN109582411A (zh) | 图形用户界面生成方法、装置、计算机设备及存储介质 | |
CN112560416B (zh) | 页面图表生成方法、装置、电子设备及存储介质 | |
CN114547106A (zh) | 数据查询方法及装置、存储介质、计算机系统 | |
CN113687827A (zh) | 基于微件的数据列表生成方法、装置、设备及存储介质 | |
US20060085446A1 (en) | Indirect persistent storage for plugin in container | |
CN111400396A (zh) | 数据同步脚本的生成方法、装置及计算机可读存储介质 | |
CN110968591A (zh) | 查询语句的生成方法、装置、存储介质及处理器 | |
CN112130841B (zh) | Sql开发方法、装置及终端设备 |
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: 20210518 |
|
RJ01 | Rejection of invention patent application after publication |