CN103383645A - 代码生成方法及*** - Google Patents
代码生成方法及*** Download PDFInfo
- Publication number
- CN103383645A CN103383645A CN2013103228585A CN201310322858A CN103383645A CN 103383645 A CN103383645 A CN 103383645A CN 2013103228585 A CN2013103228585 A CN 2013103228585A CN 201310322858 A CN201310322858 A CN 201310322858A CN 103383645 A CN103383645 A CN 103383645A
- Authority
- CN
- China
- Prior art keywords
- file
- class file
- generate
- title
- controller
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000003068 static effect Effects 0.000 claims abstract description 123
- 230000002688 persistence Effects 0.000 claims abstract description 12
- 230000009471 action Effects 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 15
- 238000011161 development Methods 0.000 abstract description 14
- 230000008439 repair process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 19
- 238000013461 design Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000002045 lasting effect Effects 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010438 heat treatment Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种代码生成方法及***,所述***包括:静态表单读取模块、Java服务器页面(JSP)生成模块、数据持久层生成模块、控制器生成模块和配置文件生成模块;所述JSP生成模块生成视图层JSP文件;所述数据持久层生成模块生成简单JAVA对象(POJO)类文件、以及数据访问对象(DAO)类文件;所述控制器生成模块,生成控制器Java类文件;所述配置文件生成模块生成可扩展标记语言(XML)配置文件。采用本发明的技术方案,能够高效地根据不同待开发软件的具体框架生成业务代码,并降低开发成本。
Description
技术领域
本发明涉及业务代码生成技术,尤其涉及一种代码生成方法及***。
背景技术
当前,使用代码生成工具些协助项目开发,解决开发人员代码不规范的问题,提高开发效率以及软件代码的复用率、降低开发成本成为趋势,但是当前的代码生成工具不能根据不同待开发项目的具体框架生成业务代码,只能生成具有辅助功能的代码,以实现基本的增、删、改、查的业务逻辑;同时,当前代码生成工具进行业务逻辑变更的控制,但是配置或学习现有的规则引擎实现比较复杂,成本较高。
因此,如何高效地根据不同待开发软件的具体框架生成业务代码,并降低开发成本,成为亟待解决的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种代码生成方法及***,以高效地根据不同待开发项目的具体框架生成业务代码,并降低开发成本。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种代码生成***,该***包括:
静态表单读取模块,用于读取静态表单的控件的代码,根据所述静态表单的控件的代码确定所述控件的属性;将所述控件封装为控件对象,根据所述控件对象所对应的属性,将所述控件对象存储至对应的变量集中;
服务器页面(JSP,Java Server Pages)生成模块,用于根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件;
数据持久层生成模块,用于读取表单数据操作对应的业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的简单JAVA对象简单JAVA对象(POJO,Plain Old Java Objects)类文件、以及数据访问对象(DAO,Data Access Object)类文件;
控制器生成模块,用于根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,所述控制器Java类文件包括:处理查看表单请求的控制器Java类文件和处理提交表单请求的控制器Java类文件;
配置文件生成模块,用于生成可扩展标记语言(XML Extensible MarkupLanguage)配置文件,所述XML配置文件中的动作(action)节点的属性与所述静态表单的名称对应。
优选地,所述JSP生成模块,还用于生成名称与所述静态表单的名称对应的空的JSP文件;在所述JSP文件中添加外联级联样式表(CSS,Cascading StyleSheet)文件、静态超文本标记语言(HTML,Hypertext Markup Language)标签;将所述静态表单的控件的代码添加到所述JSP文件中的主体(body)标签内;
确定所述静态表单中读取表单数据的控件的变量,生成与所述读取表单数据的控件的变量对应的标签前端代码、以及为所述读取表单数据的控件的变量赋值的JavaScript代码,并写入所述JSP文件;确定所述静态表单中保存表单数据且要求保存的数据非空的控件的变量,生成验证表单控件合法性的JavaScript代码,并写入所述JSP文件;
生成防止表单重复提交的JavaScript代码,并写入所述JSP文件。
优选地,所述数据持久层生成模块,还用于生成与所述业务数据表的名称对应的空的POJO类文件,获取所述业务数据表的字段类型和字段名称,向所述POJO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
生成与所述业务数据表的名称对应的空的DAO类文件,向所述DAO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
实例化第一字符串变量(String Builder),生成调用Hibernate接口的增、删、改、查的基本操作的源文件,将所述源文件写入所述第一String Builder,并将所述第一String Builder写入所述DAO类文件。
优选地,所述控制器生成模块,还用于生成处理查看表单请求的空的第一控制器Java类文件,所述第一控制器Java类文件的名称与所述静态表单的名称对应;
实例化第二String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第一控制器Java类文件的实例变量,生成对应所述第一控制器Java类文件的实例变量的获取(getter)应用和设置(setter)应用,将所述getter应用和所述setter应用添加到所述第一String Builder中;
生成对应所述第一控制器类Java类文件的执行(execute)应用,将所述execute应用添加到所述第一String Builder中;
将所述第一String Builder添加到所述第一控制器Java类文件中;
生成处理提交表单请求的空的第二控制器Java类文件,所述第二控制器Java类文件的名称与所述静态表单的名称对应;
实例化第三String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第二控制器Java类文件的实例变量,生成对应所述实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第三String Builder中;
生成对应所述第二控制器Java类文件的execute应用,将所述execute应用添加到所述第三String Builder中;
将所述第三String Builder添加到所述第二控制器Java类文件中。
优选地,所述配置文件生成模块,还用于生成空的XML配置文件,在所述XML配置文件中生成对应的包(package)节点和与所述静态表单名称对应的action节点,生成空的XML配置文件;
实例化第四String Builder,将所述XML配置文件的声明添加到所述第四String Builder中;
生成XML配置文件的package节点、以及与所述静态表单的名称对应的action节点,并添加到所述第四String Builder中;
将所述第四String Builder写入所述空的XML配置文件。
本发明还提供了一种代码生成方法,该方法包括:
读取静态表单的控件的代码,根据所述静态表单的控件的代码确定所述控件的属性;将所述控件封装为控件对象,根据所述控件对象所对应的属性,将所述控件对象存储至对应的变量集中;
根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件;
读取业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的简单JAVA对象POJO类文件、以及数据访问对象DAO类文件;
根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,所述控制器Java类文件包括:处理查看表单请求的控制器Java类文件和处理提交表单请求的控制器Java类文件;
生成XML配置文件,所述XML配置文件中的action节点的属性与所述静态表单的名称对应。
优选地,所述根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件,包括:
生成名称与所述静态表单的名称对应的空的JSP文件;在所述JSP文件中添加外联CSS文件、静态HTML标签;将所述静态表单的控件的代码添加到所述JSP文件中的主体body标签内;
确定所述静态表单中读取表单数据的控件的变量,生成与所述读取表单数据的控件的变量对应的标签前端代码、以及为所述读取表单数据的控件的变量赋值的JavaScript代码,并写入所述JSP文件;确定所述静态表单中保存表单数据且要求保存的数据非空的控件的变量,生成验证表单控件合法性的JavaScript代码,并写入所述JSP文件;
生成防止表单重复提交的JavaScript代码,并写入所述JSP文件。
优选地,所述读取业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的POJO类文件、以及数据访问对象DAO类文件,包括:
生成与所述业务数据表的名称对应的空的POJO类文件,获取所述业务数据表的字段类型和字段名称,向所述POJO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
生成与所述业务数据表的名称对应的空的DAO类文件,向所述DAO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
实例化第一String Builder,生成调用Hibernate接口的增、删、改、查的基本操作的源文件,将所述源文件写入所述第一String Builder,并将所述第一String Builder写入所述DAO类文件。
优选地,所述根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,包括:
生成处理查看表单请求的空的第一控制器Java类文件,所述第一控制器Java类文件的名称与所述静态表单的名称对应;
实例化第二String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第一控制器Java类文件的实例变量,生成对应所述第一控制器Java类文件的实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第一String Builder中;
生成对应所述第一控制器类Java类文件的execute应用,将所述execute应用添加到所述第一String Builder中;
将所述第一String Builder添加到所述第一控制器Java类文件中;
生成处理提交表单请求的空的第二控制器Java类文件,所述第二控制器Java类文件的名称与所述静态表单的名称对应;
实例化第三String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第二控制器Java类文件的实例变量,生成对应所述实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第三String Builder中;
生成对应所述第二控制器Java类文件的execute应用,将所述execute应用添加到所述第三String Builder中;
将所述第三String Builder添加到所述第二控制器Java类文件中。
优选地,所述生成可扩展标记语言XML配置文件,所述XML配置文件中的动作action节点的属性与所述静态表单的名称对应,包括:
生成空的XML配置文件,在所述XML配置文件中生成对应的package节点和与所述静态表单名称对应的action节点,生成空的XML配置文件;
实例化第四String Builder,将所述XML配置文件的声明添加到所述第四String Builder中;
生成XML配置文件的package节点、以及与所述静态表单的名称对应的action节点,并添加到所述第四String Builder中;
将所述第四String Builder写入所述空的XML配置文件。
本发明所提供的基于模型-视图-控制器(MVC,Model-View-Controller)架构的工作流网页(Web)应用的代码生成的技术方案,通过JSP生成模块生成人工活动页面的前端代码,通过控制器生成模块、数据持久层生成模块和配置文件生成模块生成Web后台代码,提高了开发人员开发工作流Web应用***的效率,并且提高了代码质量。
附图说明
图1a为本发明实施例的代码生成***的组成结构示意图;
图1b为本发明实施例的又一代码生成***的组成结构示意图;
图2为本发明实施例的代码生成方法的实现流程示意图;
图3为本发明实施例的代码生成***在工作流***中的示意图;
图4为本发明实施例的代码生成***在工作流Web开发环境中的应用示意图一;
图5为本发明实施例的代码生成***在工作流应用环境中的应用示意图二;
图6为本发明实施例的读取静态表单的实现流程示意图;
图7为本发明实施例的生成前端JSP视图文件的实现流程示意图;
图8为本发明实施例的生成Hibernate持久层的后端代码文件的实现流程示意图;
图9为本发明实施例的生成Struts2控制层代码文件的实现流程示意图;
图10为本发明实施例的生成Struts2XML配置文件的实现流程示意图。
具体实施方式
本发明的基本思想是:实际项目开发成本往往集中于业务流程模块的开发、项目开发完成后对漏洞(Bug)的处理、业务变更后代码的修改以及修改后的Bug处理和代码测试。如果在代码生成方面采用基于模板的方式,用户可以根据不同架构进行相应的模板设计;在工作流开发环境中用流程定义语言来设计流程图,对于每个人工任务活动节点通过静态表单设计器设计用于人工交互的静态表单,通过代码生成***读取并分析静态表单的控件的代码,以生成目标代码。
下面结合附图及具体实施例对本发明再作进一步详细说明。
图1a为本发明实施例的代码生成***的组成结构示意图,如图1a所示,包括:
静态表单读取模块11,用于读取静态表单的控件的代码,根据所述静态表单的控件的代码确定所述控件的属性;将所述控件封装为控件对象,根据所述控件对象所对应的属性,将所述控件对象存储至对应的变量集中;
JSP生成模块12,用于根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件;
数据持久层生成模块13,用于读取表单数据操作对应的业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的POJO类文件、以及DAO类文件;
控制器生成模块14,用于根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,所述控制器Java类文件包括:处理查看表单请求的控制器Java类文件和处理提交表单请求的控制器Java类文件;
配置文件生成模块15,用于生成XML配置文件,所述XML配置文件中的动作action节点的属性与所述静态表单的名称对应。
优选地,所述JSP生成模块,还用于生成名称与所述静态表单的名称对应的空的JSP文件;在所述JSP文件中添加外联CSS文件、静态HTML标签;将所述静态表单的控件的代码添加到所述JSP文件中的body标签内;
确定所述静态表单中读取表单数据的控件的变量,生成与所述读取表单数据的控件的变量对应的标签前端代码、以及为所述读取表单数据的控件的变量赋值的JavaScript代码,并写入所述JSP文件;确定所述静态表单中保存表单数据且要求保存的数据非空的控件的变量,生成验证表单控件合法性的JavaScript代码,并写入所述JSP文件;
生成防止表单数据重复提交的JavaScript代码、以及对所述静态表单的合法性进行验证的JavaScript代码,并写入所述JSP文件。
优选地,所述数据持久层生成模块,还用于生成与所述业务数据表的名称对应的空的POJO类文件,获取所述业务数据表的字段类型和字段名称,向所述POJO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
生成与所述业务数据表的名称对应的空的DAO类文件,向所述DAO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
实例化第一字符串变量(String Builder),生成调用Hibernate接口的增、删、改、查的基本操作的源文件,将所述源文件写入所述第一String Builder,并将所述第一String Builder写入所述DAO类文件。
优选地,所述控制器生成模块,还用于生成处理查看表单请求的空的第一控制器Java类文件,所述第一控制器Java类文件的名称与所述静态表单的名称对应;
实例化第二String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第一控制器Java类文件的实例变量,生成对应所述第一控制器Java类文件的实例变量的获取(getter)应用和设置(setter)应用,将所述getter应用和所述setter应用添加到所述第一String Builder中;
生成对应所述第一控制器类Java类文件的执行(execute)应用,将所述execute应用添加到所述第一String Builder中;
将所述第一String Builder添加到所述第一控制器Java类文件中;
生成处理提交表单请求的空的第二控制器Java类文件,所述第二控制器Java类文件的名称与所述静态表单的名称对应;
实例化第三String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第二控制器Java类文件的实例变量,生成对应所述实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第三String Builder中;
生成对应所述第二控制器Java类文件的execute应用,将所述execute应用添加到所述第三String Builder中;
将所述第三String Builder添加到所述第二控制器Java类文件中。
所述配置文件生成模块,还用于生成空的XML配置文件,在所述XML配置文件中生成对应的package节点和与所述静态表单名称对应的action节点,生成空的XML配置文件;
实例化第四String Builder,将所述XML配置文件的声明添加到所述第四String Builder中;
生成XML配置文件的package节点、以及与所述静态表单的名称对应的action节点,并添加到所述第四String Builder中;
将所述第四String Builder写入所述XML配置文件。
图1b为本发明实施例的又一代码生成***的组成结构示意图,如图1b所示,除包括上述静态表单读取模块11、JSP生成模块12、数据持久层生成模块13、控制器生成模块14和配置文件生成模块15之外,该***还可以包括:
工作流引擎16,用于调度JSP生成模块12生成视图层JSP文件,即Web应用***人工活动页面的前端代码;调度数据持久层生成模块13、控制器生成模块14和配置文件生成模块15对应生成POJO类文件和DAO类文件、控制器Java类文件、以及XML配置文件,即Web应用***人工活动页面的Web后台代码。
图2为本发明实施例的代码生成方法的实现流程示意图,如图2所示,包括:
步骤201:读取静态表单的控件的代码,根据所述静态表单的控件的代码确定所述控件的属性;将所述控件封装为控件对象,根据所述控件对象所对应的属性,将所述控件对象存储至对应的变量集中;
步骤202:根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件;
在步骤202的一个优选实施方式中,生成名称与所述静态表单的名称对应的空的JSP文件;在所述JSP文件中添加外联CSS文件、静态HTML标签;将所述静态表单的控件的代码添加到所述JSP文件中的主体body标签内;
确定所述静态表单中读取表单数据的控件的变量,生成与所述读取表单数据的控件的变量对应的标签前端代码、以及为所述读取表单数据的控件的变量赋值的JavaScript代码,并写入所述JSP文件;确定所述静态表单中保存表单数据且要求保存的数据非空的控件的变量,生成验证表单控件合法性的JavaScript代码,并写入所述JSP文件;
生成防止表单重复提交的JavaScript代码,并写入所述JSP文件。
步骤203:读取业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的简单JAVA对象POJO类文件、以及数据访问对象DAO类文件;
在步骤203的一个优选实施方式中,生成与所述业务数据表的名称对应的空的POJO类文件,获取所述业务数据表的字段类型和字段名称,向所述POJO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
生成与所述业务数据表的名称对应的空的DAO类文件,向所述DAO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
实例化第一String Builder,生成调用开放源代码的对象关系映射框架Hibernate接口的增、删、改、查的基本操作的源文件,将所述源文件写入所述第一String Builder,并将所述第一String Builder写入所述DAO类文件。
步骤204:根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,所述控制器Java类文件包括:处理查看业务数据表请求的控制器Java类文件和处理提交业务数据表请求的控制器Java类文件;
在步骤204的一个优选实施方式中,生成处理查看表单请求的空的第一控制器Java类文件,所述第一控制器Java类文件的名称与所述静态表单的名称对应;
实例化第二String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第一控制器Java类文件的实例变量,生成对应所述第一控制器Java类文件的实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第一String Builder中;
生成对应所述第一控制器类Java类文件的execute应用,将所述execute应用添加到所述第一String Builder中;
将所述第一String Builder添加到所述第一控制器Java类文件中;
生成处理提交表单请求的空的第二控制器Java类文件,所述第二控制器Java类文件的名称与所述静态表单的名称对应;
实例化第三String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第二控制器Java类文件的实例变量,生成对应所述实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第三String Builder中;
生成对应所述第二控制器Java类文件的execute应用,将所述execute应用添加到所述第三String Builder中;
将所述第三String Builder添加到所述第二控制器Java类文件中。
步骤205:生成XML配置文件,所述XML配置文件中的action节点的属性与所述静态表单的名称对应。
在步骤205的一个优选实施方式中,生成空的XML配置文件,在所述XML配置文件中生成对应的package节点和与所述静态表单名称对应的action节点。生成空的XML配置文件;
实例化第四String Builder,将所述XML配置文件的声明添加到所述第四String Builder中;
生成XML配置文件的package节点、以及与所述静态表单的名称对应的action节点,并添加到所述第四String Builder中;
将所述第四String Builder写入所述XML配置文件。
下面以报修***为例并结合图3~图5,对本发明实施例的代码生成方法及***作进一步的说明。
图3为本发明实施例的代码生成***在工作流***中的位置示意图,如图3所示,用户通过报修流程控制台来操作管理报修工作流网页Web应用***,流程开发人员通过静态表单设计器设计报修***中所需的静态表单,代码生成***将报修***静态表单的控件的属性作为输入,并输出报修***中人工任务节点运行所需的目标代码的文件,最后将目标代码的文件保存到服务器指定的位置。
图4为本发明实施例的代码生成***在工作流Web开发环境中的应用示意图一,如图4所示,报修***流程开发人员通过工作流开发环境向导建立工程,然后通过流程设计器可视化地设计报修***人工任务节点所需的静态表单和报修***流程定义文件。具体为:在工作台中双击人工任务节点,选择该节点对应的静态表单,调用代码生成***来生成报修***中该人工任务节点对应的目标代码,包括JSP视图文件以及POJO类文件、DAO类文件、控制器文件和XML配置文件。
图5为本发明实施例的代码生成***在工作流应用环境中的应用示意图二,如图5所示,在报修***应用过程中,当流程运行到报修人工活动节点时,用户向报修***服务器发起读取静态表单的请求后,代码生成***的控制器生成模块14读取保存在报修业务数据表中的业务数据,并根据数据处理的结果向用户返回生成的前端JSP视图文件,该前端JSP视图文件向用户展示业务数据后,用户可以向该静态表单获取报修业务数据的控件中填写报修业务数据,并提交到报修***的后台服务器,代码生成***的数据持久层生成模块13将报修业务数据持久化到业务数据库中,并调用工作流引擎16提供的结束人工任务节点的应用程序接口(API,Application Program Interface),使报修流程继续流转。
下面暖气报修***中的网站报修申请人工活动节点为例,对本发明实施例的代码生成方法作进一步详细说明。
为发起网站报修申请人工活动节点可视化地设计用于人机交互的静态表单,将静态表单命名为newApply,静态表单包括7个控件,分别为报修人姓名(属性name="userName",type="read notNull",table="user",field="userName")、报修人固定电话(属性name="telephone",type="read",table="user",field="telephone")、报修人家庭住址(属性为name="address",type="read notNull",table="user",field="address")、报修人移动电话(属性为name="mobile",type="read notNull",table="user",field="mobile")、报修人小区所在锅炉房(属性为name="ceilName",type="read",table="user",field="ceilName")、报修类型(属性为name="repairType",type="insert",table="repair",field="repairType")、报修内容控件(属性为name="repairDetail",type="insert",table="repair",field="repairDetail")。
双击流程图中的网站报修申请人工任务节点,为该人工任务节点选择网站报修申请表单,点击确定后调用代码生成***,图6为本发明实施例的读取静态表单的实现流程示意图,如图6所示,包括以下步骤:
步骤601:循环读取报修申请静态表单中的控件;
步骤602~步骤603:判断表单中的控件的类型,根据表单控件的自定义type属性对不同的表单控件进行分类;
type="read"表示读取业务数据表数据的表单控件,业务数据表数据包括报修人固定电话、报修人家庭住址、报修人移动电话和报修小区所在锅炉房;type="insert"表示获取用户业务数据并写入数据库的表单控件,包括报修类型和报修内容2个表单控件;type="notNull"表示非空类型控件,包括报修人姓名、家庭住址和移动电话。type属性值可以用空格分开以表示多个值,如报修人姓名控件既是读取业务数据表数据类型的控件又是非空类型的控件,则对应的type="read notNull"。
步骤604:将不同类型的表单控件对应的对象保存到相应的控件对象变量集中;
将表单的控件封装为对象,对象的属性为对应的控件的属性,如对象userName包括type、name、table和field属性,将不同类型的控件保存到相应的控件对象变量集合中,具体地,将读取业务数据表数据的表单控件对应的对象存储到读取类型的变量集readSet中,非空类型的控件对应的对象存储到非空类型的变量集notNullSet中,获取用户业务数据的控件对应的对象存储到写入类型的变量集insertSet中。
图7为本发明实施例的生成前端JSP视图文件的实现流程示意图,如图7所示,包括以下步骤:
步骤701:生成JSP空文件;
对应人工任务节点的JSP空文件名称为newApply.JSP,文件名称对应静态表单名称newApply。
步骤702:向JSP文件写入静态部分和超文本标记语言(HTML,Hyper TextMarkup Language)标签;
向newApply.JSP中写入静态部分,包括JSP头部声明<%page language="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>和HTML标签<html><head><meta><body>。
步骤703:读取静态表单的代码并将添加到JSP文件中的<body>标签内;
步骤704:遍历并保存读取类型的变量集中的读取业务数据表数据的表单控件变量;
遍历保存读取业务数据表数据类型的表单控件变量,为这些表单控件变量生成Struts2标签前端代码以及给表单控件变量赋值的JavaScript代码,如varuserName=document.getElementById('userName');userName.value='<s:propertyvalue="user.userName"/>'。
步骤705:生成验证表单控件合法性的Javascript代码;
遍历并保存写入类型变量集中的获取用户业务数据的表单控件变量,对于其中的非空类型的表单控件变量,例如报修人姓名、家庭住址、移动电话,生成验证表单控件合法性的Javascript代码。
步骤706:生成防止表单重复提交的JavaScript代码;
步骤707:生成对静态表单进行合法性验证的JavaScript代码;
步骤707:将上述生成的代码写入空的JSP文件中,得到生成完整的前端JSP视图文件,将其存放于指定路径/web/content/JSP。
图8为本发明实施例的生成Hibernate持久层的后端代码文件的实现流程示意图,如图8所示,包括以下步骤:
步骤801:遍历所有的业务数据表;
通过Jdbc获取暖气报修***所有的业务数据表如user、repair,并遍历所有的业务数据表。
步骤802:获取业务数据表的数据结构;
包括业务数据表的名称、字段类型和字段名称等信息。
步骤803:生成与业务数据表同名的POJO持久化类文件;
包括User和Repair。
步骤804:遍历业务数据表的所有字段;
步骤805:将字段对应的成员变量写入POJO持久化类文件;
步骤806:生成与业务数据表中的字段名称和类型对应的Java类型的属性变量,将这些属性写入POJO类文件中。
步骤807:生成POJO类文件和DAO类文件。
生成的文件存储到指定路径/src/com/model/。
根据业务数据表的名称生成空的数据访问对象Java类(DAO),如UserDAO、RepairDAO,实例化空的Java可变字符串类源码变量String Builder,用于保存DAO类源码,将业务数据表user,repair对应的POJO类User,Repair分别作为该DAO类UserDAO,RepairDAO的属性user,repair,生成调用Hibernate接口的增删改查的基本操作的源码,并将这些源码添加到源码变量中,将保存DAO类源码的String Builder变量数据写入到空的DAO文件中,生成最终DAO类文件,将生成的文件放于指定的路径/src/com/DAO/。
图9为本发明实施例的生成Struts2控制层代码文件的实现流程示意图,如图9所示,包括以下步骤:
步骤901:获取暖气报修***所有的业务数据表user、repair,循环遍历所有的业务数据表;
步骤902:生成第一个Struts2控制器空Java类文件;
生成用于处理用户的查看业务表单请求的第一个Struts2控制器空Java类文件,文件的名称对应静态表单的名称,如ApplyFirstAction。
步骤903:实例化第一个Struts2控制器类文件源码的可变String Builder;
实例化用于保存第一个Struts2控制器类文件的可变字符串源码变量StringBuilder。
步骤904:生成实例变量的getter和setter应用,并添加到String Builder中;
将业务表对应的DAO持久化类实例以及POJO类实例作为控制器类的实例变量,如类ApplyFirst中包含User和UserDao类型的变量属性,生成这些控件变量的getter和setter应用,并将其添加到字符变量String Builder中。
步骤905:生成第一个Struts2控制器类的execute应用,并添加到StringBuilder中;
生成第一个Struts2控制器类的execute应用,在方法内部调用DAO类实例的查询接口,如user=userDao.get(),并调用工作流引擎的API,将方法体添加到String Builder变量中。
步骤906:生成最终的第一个Struts2action文件,并置于指定的路径/src/com/action/;
将第一个Struts2action的源码变量写入到第一个sturts2action的空文件中,生成最终的第一个Struts2action文件,并将文件置于指定的路径/src/com/action/。
步骤907:生成第二个Struts2控制器空Java类文件;
生成第二个Struts2控制器空Java类文件,文件的名称根据表单的名称,如ApplySecondAction。
步骤908:实例化保存第二个Struts2控制器类文件源码的可变StringBuilder;
步骤909:生成实例变量的getter和setter应用,并添加到String Builder中;
将业务表对应的DAO持久化类实例以及POJO类实例作为控制器类的实例变量,生成这些实例变量的getter和setter应用,并将其添加到String Builder中。
步骤910:生成第二个Struts2控制器类的execute应用,并添加到StringBuilder;
生成第二个Struts2控制器类的execute应用,在应用内部调用DAO类实例的持久化接口如repairDao.add(repair),并调用工作流引擎的API,将应用体添加到StringBuilder。
步骤911:生成最终的第二个Struts2action文件。
将第二个Struts2action的源码变量写入到第二个struts2action的空文件中,生成最终的第二个Struts2action文件,并将文件置于指定的路径/src/com/action。
图10为本发明实施例的生成Struts2XML配置文件的实现流程示意图,如图10所示,包括以下步骤:
步骤1001:生成空的Struts2XML配置文件;
文件名称为struts.XML。
步骤1002:实例化可变String Builder;
用于保存Struts2XML配置文件的源码。
步骤1003:将XML配置文件的声明添加到String Builder中;
步骤1004:生成XML配置文件的package节点,添加到String Builder中;
步骤1005:根据静态表单生成action节点;
action节点的属性name和class根据静态表单的名称,如<action name="applyFirst"class="com.action.ApplyFistAction>"以及<action name="applySecond"class="ApplySecondAction">;
将源码变量中的数据写入XML空配置文件中,生成最终XML配置文件,并将其置于指定的路径。
步骤1004:生成action节点并赋予属性值;
根据静态表单生成action节点,action节点的属性name和class根据静态表单的名称,如<action name="applyFirst"class="com.action.ApplyFistAction>"以及<action name="applySecond"class="ApplySecondAction">。
将源码变量中的数据写入XML空配置文件中,生成最终XML配置文件,并将其置于指定的路径。
根据上述生成的目标文件,部署流程定义,发起流程实例进行人机交互。
其余人工任务节点受理员审核申请、值班经理派遣维修员、值班经理上传维修结果、受理员电话回访的代码生成过程同理,都会生成该人工任务节点对应的前端JSP视图文件、后台控制器Struts Action文件、POJO文件、DAO文件以及向struts.xml配置文件中添加人工任务节点对应的action dom节点。
本发明实施例记载的代码生成***可以采用目前流行的开发工具Eclipse插件形式进行安装部署,用户只需要把插件复制到对应的开发工具的目录,在对应的项目中选中进行代码的辅助生成,从而缩短了开发人员的开发周期,提高了开发效率;
并且,本发明实施例记载的代码生成***在针对业务逻辑的代码生成方面作出了创新,例如,开发人员只需要可视化的通过表单设计器来设计静态表单,并设置好表单控件的各种自定义属性,就可以生成符合相关业务逻辑的代码。代码生成***生成的所有的代码都是基于模板的,模板可以按照公司的不同需求进行配置,从而对代码的自动生成实现了可定制化,在代码可用性、代码生成质量以及代码生成效率上都得到了极大的提高。
以上所述,仅为本发明的较佳实施例而已,并非用来限定本发明的保护范围。
Claims (10)
1.一种代码生成***,其特征在于,该***包括:
静态表单读取模块,用于读取静态表单的控件的代码,根据所述静态表单的控件的代码确定所述控件的属性;将所述控件封装为控件对象,根据所述控件对象所对应的属性,将所述控件对象存储至对应的变量集中;
Java服务器页面JSP生成模块,用于根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件;
数据持久层生成模块,用于读取表单数据操作对应的业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的简单JAVA对象POJO类文件、以及数据访问对象DAO类文件;
控制器生成模块,用于根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,所述控制器Java类文件包括:处理查看表单请求的控制器Java类文件和处理提交表单请求的控制器Java类文件;
配置文件生成模块,用于生成可扩展标记语言XML配置文件,所述XML配置文件中的动作action节点的属性与所述静态表单的名称对应。
2.根据权利要求1所述的***,其特征在于,
所述JSP生成模块,还用于生成名称与所述静态表单的名称对应的空的JSP文件;在所述JSP文件中添加外联级联样式表CSS文件、静态超文本标记语言HTML标签;将所述静态表单的控件的代码添加到所述JSP文件中的主体body标签内;
确定所述静态表单中读取表单数据的控件的变量,生成与所述读取表单数据的控件的变量对应的标签前端代码、以及为所述读取表单数据的控件的变量赋值的JavaScript代码,并写入所述JSP文件;确定所述静态表单中保存表单数据且要求保存的数据非空的控件的变量,生成验证表单控件合法性的JavaScript代码,并写入所述JSP文件;
生成防止表单重复提交的JavaScript代码,并写入所述JSP文件。
3.根据权利要求1所述的***,其特征在于,
所述数据持久层生成模块,还用于生成与所述业务数据表的名称对应的空的POJO类文件,获取所述业务数据表的字段类型和字段名称,向所述POJO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
生成与所述业务数据表的名称对应的空的DAO类文件,向所述DAO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
实例化第一字符串变量String Builder,生成调用Hibernate接口的增、删、改、查的基本操作的源文件,将所述源文件写入所述第一String Builder,并将所述第一String Builder写入所述DAO类文件。
4.根据权利要求3所述的***,其特征在于,
所述控制器生成模块,还用于生成处理查看表单请求的空的第一控制器Java类文件,所述第一控制器Java类文件的名称与所述静态表单的名称对应;
实例化第二String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第一控制器Java类文件的实例变量,生成对应所述第一控制器Java类文件的实例变量的获取getter应用和设置setter应用,将所述getter应用和所述setter应用添加到所述第一String Builder中;
生成对应所述第一控制器类Java类文件的执行execute应用,将所述execute应用添加到所述第一String Builder中;
将所述第一String Builder添加到所述第一控制器Java类文件中;
生成处理提交表单请求的空的第二控制器Java类文件,所述第二控制器Java类文件的名称与所述静态表单的名称对应;
实例化第三String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第二控制器Java类文件的实例变量,生成对应所述实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第三String Builder中;
生成对应所述第二控制器Java类文件的execute应用,将所述execute应用添加到所述第三String Builder中;
将所述第三String Builder添加到所述第二控制器Java类文件中。
5.根据权利要求1至4任一项所述的***,其特征在于,
所述配置文件生成模块,还用于生成空的XML配置文件,在所述XML配置文件中生成对应的包package节点和与所述静态表单名称对应的action节点,生成空的XML配置文件;
实例化第四String Builder,将所述XML配置文件的声明添加到所述第四String Builder中;
生成XML配置文件的package节点、以及与所述静态表单的名称对应的action节点,并添加到所述第四String Builder中;
将所述第四String Builder写入所述空的XML配置文件。
6.一种代码生成方法,其特征在于,该方法包括:
读取静态表单的控件的代码,根据所述静态表单的控件的代码确定所述控件的属性;将所述控件封装为控件对象,根据所述控件对象所对应的属性,将所述控件对象存储至对应的变量集中;
根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件;
读取业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的简单JAVA对象POJO类文件、以及数据访问对象DAO类文件;
根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,所述控制器Java类文件包括:处理查看表单请求的控制器Java类文件和处理提交表单请求的控制器Java类文件;
生成XML配置文件,所述XML配置文件中的action节点的属性与所述静态表单的名称对应。
7.根据权利要求6所述的方法,其特征在于,所述根据所述变量集中控件对象的属性,生成对应不同属性变量集的JavaScript代码,根据所述JavaScript代码、以及所述静态表单的控件的代码,生成视图层JSP文件,包括:
生成名称与所述静态表单的名称对应的空的JSP文件;在所述JSP文件中添加外联CSS文件、静态HTML标签;将所述静态表单的控件的代码添加到所述JSP文件中的body标签内;
确定所述静态表单中读取表单数据的控件的变量,生成与所述读取表单数据的控件的变量对应的标签前端代码、以及为所述读取表单数据的控件的变量赋值的JavaScript代码,并写入所述JSP文件;确定所述静态表单中保存表单数据且要求保存的数据非空的控件的变量,生成验证表单控件合法性的JavaScript代码,并写入所述JSP文件;
生成防止表单重复提交的JavaScript代码,并写入所述JSP文件。
8.根据权利要求6所述的方法,其特征在于,所述读取业务数据表,根据所述业务数据表的数据结构,生成分别与所述业务数据表的名称对应的POJO类文件、以及数据访问对象DAO类文件,包括:
生成与所述业务数据表的名称对应的空的POJO类文件,获取所述业务数据表的字段类型和字段名称,向所述POJO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
生成与所述业务数据表的名称对应的空的DAO类文件,向所述DAO类文件写入与所述业务数据表的字段类型和字段名称对应的属性;
实例化第一String Builder,生成调用Hibernate接口的增、删、改、查的基本操作的源文件,将所述源文件写入所述第一String Builder,并将所述第一String Builder写入所述DAO类文件。
9.根据权利要求8所述的***,其特征在于,所述根据所述变量集中控件对象的属性、以及所述POJO类文件的实例和所述DAO类文件的实例,生成与所述静态表单的名称对应的控制器Java类文件,包括:
生成处理查看表单请求的空的第一控制器Java类文件,所述第一控制器Java类文件的名称与所述静态表单的名称对应;
实例化第二String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第一控制器Java类文件的实例变量,生成对应所述第一控制器Java类文件的实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第一String Builder中;
生成对应所述第一控制器类Java类文件的execute应用,将所述execute应用添加到所述第一String Builder中;
将所述第一String Builder添加到所述第一控制器Java类文件中;
生成处理提交表单请求的空的第二控制器Java类文件,所述第二控制器Java类文件的名称与所述静态表单的名称对应;
实例化第三String Builder,将所述业务数据表对应的DAO类文件的实例以及POJO类文件的实例作为所述第二控制器Java类文件的实例变量,生成对应所述实例变量的getter应用和setter应用,将所述getter应用和所述setter应用添加到所述第三String Builder中;
生成对应所述第二控制器Java类文件的execute应用,将所述execute应用添加到所述第三String Builder中;
将所述第三String Builder添加到所述第二控制器Java类文件中。
10.根据权利要求6至9任一项所述的方法,其特征在于,所述生成XML配置文件,所述XML配置文件中的动作action节点的属性与所述静态表单的名称对应,包括:
生成空的XML配置文件,在所述XML配置文件中生成对应的package节点和与所述静态表单名称对应的action节点,生成空的XML配置文件;
实例化第四String Builder,将所述XML配置文件的声明添加到所述第四String Builder中;
生成XML配置文件的package节点、以及与所述静态表单的名称对应的action节点,并添加到所述第四String Builder中;
将所述第四String Builder写入所述空的XML配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310322858.5A CN103383645B (zh) | 2013-07-29 | 2013-07-29 | 代码生成方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310322858.5A CN103383645B (zh) | 2013-07-29 | 2013-07-29 | 代码生成方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103383645A true CN103383645A (zh) | 2013-11-06 |
CN103383645B CN103383645B (zh) | 2016-05-11 |
Family
ID=49491445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310322858.5A Expired - Fee Related CN103383645B (zh) | 2013-07-29 | 2013-07-29 | 代码生成方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103383645B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744680A (zh) * | 2014-01-16 | 2014-04-23 | 北京邮电大学 | 一种业务流程处理方法及装置 |
CN104461513A (zh) * | 2014-11-21 | 2015-03-25 | 山东航天信息有限公司 | 一种生成表单界面的方法及装置 |
CN104932904A (zh) * | 2015-07-14 | 2015-09-23 | 福建农林大学 | 一种针对智能家居的可配置数据库编程模式 |
CN105068812A (zh) * | 2015-08-19 | 2015-11-18 | 深圳联友科技有限公司 | 一种表单生成方法及装置 |
CN105824619A (zh) * | 2016-03-10 | 2016-08-03 | 四川交通职业技术学院 | 基于Spring MVC、Apache Shiro、MyBatis框架整合的代码生成器 |
CN106357719A (zh) * | 2015-07-17 | 2017-01-25 | Sap欧洲公司 | 用于网络应用的基于页面的事件相关 |
CN106775788A (zh) * | 2015-11-19 | 2017-05-31 | 中国科学院声学研究所 | 一种自动生成和运行JavaScript文件的方法 |
CN106886390A (zh) * | 2015-12-15 | 2017-06-23 | 大唐软件技术股份有限公司 | 一种Java对象生成和转换方法和Java对象生成和转换装置 |
CN107633008A (zh) * | 2017-08-10 | 2018-01-26 | 阿里巴巴集团控股有限公司 | Web工程数据处理方法、装置、服务器及*** |
CN107977236A (zh) * | 2017-12-21 | 2018-05-01 | 上海智臻智能网络科技股份有限公司 | 问答***的生成方法、终端设备、存储介质及问答*** |
CN109558125A (zh) * | 2018-12-17 | 2019-04-02 | 太原市高远时代科技有限公司 | 一种提高一般信息管理软件开发效率的实现方法 |
CN109739546A (zh) * | 2018-12-26 | 2019-05-10 | 深圳乐信软件技术有限公司 | 属性参数获取方法、装置、存储介质及服务器 |
CN110045982A (zh) * | 2019-03-28 | 2019-07-23 | 宋子杰 | 一种基于源代码聚合的嵌入式***配置方法 |
CN110069246A (zh) * | 2019-03-28 | 2019-07-30 | 北京众智益成科技有限公司 | 一种Java Web应用快速开发的平台***及其应用 |
CN110175022A (zh) * | 2019-04-25 | 2019-08-27 | 平安科技(深圳)有限公司 | 自动生成pojo类的方法、装置及存储介质、计算机设备 |
WO2019218597A1 (zh) * | 2018-05-14 | 2019-11-21 | 华南理工大学 | 一种表驱动的云模式软件自动构造方法及*** |
CN110659027A (zh) * | 2019-09-20 | 2020-01-07 | 京东方科技集团股份有限公司 | 一种代码生成方法、装置及电子设备 |
CN111666072A (zh) * | 2020-06-09 | 2020-09-15 | 南京及物智能技术有限公司 | 一种软件代码及文档机器人方法 |
CN112052012A (zh) * | 2020-08-31 | 2020-12-08 | 烽火通信科技股份有限公司 | 基于xslt和xsd的代码自动生成方法和设备 |
CN112416363A (zh) * | 2020-12-09 | 2021-02-26 | 锐捷网络股份有限公司 | 一种前后端crud代码的生成方法及装置 |
CN114035782A (zh) * | 2021-10-22 | 2022-02-11 | 交通运输部南海航海保障中心广州通信中心 | 基于表单设计的代码自动生成方法、***及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030146937A1 (en) * | 2001-09-11 | 2003-08-07 | Lee Seung Woo | Multi-level data management system |
CN101697120A (zh) * | 2009-11-05 | 2010-04-21 | 河南辉煌科技股份有限公司 | 基于关系型数据库的j2ee代码生成方法 |
CN102609503A (zh) * | 2012-02-02 | 2012-07-25 | 福建榕基软件股份有限公司 | 静态网页页面的生成方法及装置 |
CN102841791A (zh) * | 2012-07-12 | 2012-12-26 | 上海高洁信息科技股份有限公司 | 在线表单的生成方法及*** |
-
2013
- 2013-07-29 CN CN201310322858.5A patent/CN103383645B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030146937A1 (en) * | 2001-09-11 | 2003-08-07 | Lee Seung Woo | Multi-level data management system |
CN101697120A (zh) * | 2009-11-05 | 2010-04-21 | 河南辉煌科技股份有限公司 | 基于关系型数据库的j2ee代码生成方法 |
CN102609503A (zh) * | 2012-02-02 | 2012-07-25 | 福建榕基软件股份有限公司 | 静态网页页面的生成方法及装置 |
CN102841791A (zh) * | 2012-07-12 | 2012-12-26 | 上海高洁信息科技股份有限公司 | 在线表单的生成方法及*** |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744680A (zh) * | 2014-01-16 | 2014-04-23 | 北京邮电大学 | 一种业务流程处理方法及装置 |
CN103744680B (zh) * | 2014-01-16 | 2017-02-15 | 北京邮电大学 | 一种业务流程处理方法及装置 |
CN104461513A (zh) * | 2014-11-21 | 2015-03-25 | 山东航天信息有限公司 | 一种生成表单界面的方法及装置 |
CN104461513B (zh) * | 2014-11-21 | 2018-01-09 | 山东航天信息有限公司 | 一种生成表单界面的方法及装置 |
CN104932904A (zh) * | 2015-07-14 | 2015-09-23 | 福建农林大学 | 一种针对智能家居的可配置数据库编程模式 |
CN106357719A (zh) * | 2015-07-17 | 2017-01-25 | Sap欧洲公司 | 用于网络应用的基于页面的事件相关 |
CN105068812B (zh) * | 2015-08-19 | 2018-07-13 | 深圳联友科技有限公司 | 一种表单生成方法及装置 |
CN105068812A (zh) * | 2015-08-19 | 2015-11-18 | 深圳联友科技有限公司 | 一种表单生成方法及装置 |
CN106775788A (zh) * | 2015-11-19 | 2017-05-31 | 中国科学院声学研究所 | 一种自动生成和运行JavaScript文件的方法 |
CN106775788B (zh) * | 2015-11-19 | 2019-08-20 | 中国科学院声学研究所 | 一种自动生成和运行JavaScript文件的方法 |
CN106886390A (zh) * | 2015-12-15 | 2017-06-23 | 大唐软件技术股份有限公司 | 一种Java对象生成和转换方法和Java对象生成和转换装置 |
CN105824619A (zh) * | 2016-03-10 | 2016-08-03 | 四川交通职业技术学院 | 基于Spring MVC、Apache Shiro、MyBatis框架整合的代码生成器 |
CN107633008A (zh) * | 2017-08-10 | 2018-01-26 | 阿里巴巴集团控股有限公司 | Web工程数据处理方法、装置、服务器及*** |
CN107977236A (zh) * | 2017-12-21 | 2018-05-01 | 上海智臻智能网络科技股份有限公司 | 问答***的生成方法、终端设备、存储介质及问答*** |
CN107977236B (zh) * | 2017-12-21 | 2020-11-13 | 上海智臻智能网络科技股份有限公司 | 问答***的生成方法、终端设备、存储介质及问答*** |
WO2019218597A1 (zh) * | 2018-05-14 | 2019-11-21 | 华南理工大学 | 一种表驱动的云模式软件自动构造方法及*** |
CN109558125A (zh) * | 2018-12-17 | 2019-04-02 | 太原市高远时代科技有限公司 | 一种提高一般信息管理软件开发效率的实现方法 |
CN109739546A (zh) * | 2018-12-26 | 2019-05-10 | 深圳乐信软件技术有限公司 | 属性参数获取方法、装置、存储介质及服务器 |
CN110069246A (zh) * | 2019-03-28 | 2019-07-30 | 北京众智益成科技有限公司 | 一种Java Web应用快速开发的平台***及其应用 |
CN110045982A (zh) * | 2019-03-28 | 2019-07-23 | 宋子杰 | 一种基于源代码聚合的嵌入式***配置方法 |
CN110175022A (zh) * | 2019-04-25 | 2019-08-27 | 平安科技(深圳)有限公司 | 自动生成pojo类的方法、装置及存储介质、计算机设备 |
CN110175022B (zh) * | 2019-04-25 | 2023-10-13 | 平安科技(深圳)有限公司 | 自动生成pojo类的方法、装置及存储介质、计算机设备 |
CN110659027A (zh) * | 2019-09-20 | 2020-01-07 | 京东方科技集团股份有限公司 | 一种代码生成方法、装置及电子设备 |
CN111666072A (zh) * | 2020-06-09 | 2020-09-15 | 南京及物智能技术有限公司 | 一种软件代码及文档机器人方法 |
CN112052012A (zh) * | 2020-08-31 | 2020-12-08 | 烽火通信科技股份有限公司 | 基于xslt和xsd的代码自动生成方法和设备 |
CN112052012B (zh) * | 2020-08-31 | 2022-11-11 | 烽火通信科技股份有限公司 | 基于xslt和xsd的代码自动生成方法和设备 |
CN112416363A (zh) * | 2020-12-09 | 2021-02-26 | 锐捷网络股份有限公司 | 一种前后端crud代码的生成方法及装置 |
CN112416363B (zh) * | 2020-12-09 | 2024-03-19 | 锐捷网络股份有限公司 | 一种前后端crud代码的生成方法及装置 |
CN114035782A (zh) * | 2021-10-22 | 2022-02-11 | 交通运输部南海航海保障中心广州通信中心 | 基于表单设计的代码自动生成方法、***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103383645B (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103383645B (zh) | 代码生成方法及*** | |
CN109062567B (zh) | 基于b/s结构的信息管理***快速开发平台 | |
CN102567539B (zh) | 一种web智能报表的实现方法和*** | |
CN100520717C (zh) | 基于mvc的业务组装和页面模板化开发web平台的方法 | |
JP5099982B2 (ja) | 完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置 | |
CN104360859B (zh) | 一种可视化的服务开发方法和*** | |
CN107807913A (zh) | 一种基于web的电子表单设计***及方法 | |
CN110069246A (zh) | 一种Java Web应用快速开发的平台***及其应用 | |
CN103853543A (zh) | 一种应用于企业信息***开发过程中快速构建表单的方法 | |
CN104375818A (zh) | 一种通过配置文件实现通用数据格式录入的***及方法 | |
CN104424338A (zh) | web***的自动生成装置和自动生成方法 | |
JP2008507032A (ja) | オブジェクトプロセスグラフアプリケーションコントローラビュワ | |
CN102520966A (zh) | 一种代码提示方法和装置 | |
CN101909082A (zh) | 一种基于模型驱动的网格门户配置***及配置方法 | |
CN105204863A (zh) | 违法数据审核***技术文档 | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和*** | |
CN107256144A (zh) | 前后台代码自动生成方法、终端及计算机可读存储介质 | |
US20130080338A1 (en) | Ideas promoted to projects and synchronization of status information | |
CN101876998B (zh) | 一种实现数据编辑的方法和*** | |
CN104834715A (zh) | 一种基于部件和容器的网站生成方法及*** | |
Sun et al. | The exploration and practice of mvvm pattern on android platform | |
Cysneiros et al. | Traceability and completeness checking for agent-oriented systems | |
CN116909553A (zh) | 一种页面在线开发及本地编译运行*** | |
Inayatullah et al. | Model-based scaffolding code generation for cross-platform applications | |
CN109558125A (zh) | 一种提高一般信息管理软件开发效率的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160511 |