CN101697120B - 基于关系型数据库的j2ee代码生成方法 - Google Patents
基于关系型数据库的j2ee代码生成方法 Download PDFInfo
- Publication number
- CN101697120B CN101697120B CN 200910066369 CN200910066369A CN101697120B CN 101697120 B CN101697120 B CN 101697120B CN 200910066369 CN200910066369 CN 200910066369 CN 200910066369 A CN200910066369 A CN 200910066369A CN 101697120 B CN101697120 B CN 101697120B
- Authority
- CN
- China
- Prior art keywords
- code
- generate
- database
- name
- note
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于关系型数据库的J2EE代码生成方法,包括下述步骤:1.设置目标代码模板定义步骤:依据已有的框架将不变的代码定义为模板,将可变的代码定义为宏;2.外部数据获取步骤:获取关系型数据库表结构参数、数据库对象注释信息、结构化查询命令、代码生成配置参数以及操作系统参数;3.逻辑运算步骤:由所述获取到的参数通过逻辑运算得到与目标代码有相关的宏;4.代码生成步骤:将所述宏套用在代码模板中生成MVC三层架构的目标代码。本发明优点在于根据巴列特定律中二八原则:“总结果的80%是由总消耗时间中的20%所形成的”,以J2EE软件开发的二八原则为指导,实现了由关系型数据库生成J2EE代码的完整技术方案。
Description
技术领域
本发明涉及J2EE代码的生成方法,尤其是涉及基于关系型数据库的J2EE代码生成方法。
背景技术
现今除了金融和电信较早实施的信息化外,电子政务、电子商务、企业信息化等各行业的信息化建设的步伐也越来越快。其中最为突出的是大量遵循J2EE(JAVA 2 Enterprise Edition)规范开发的信息管理项目应运而生,此类项目往往在一定的时间内集中出现而且开发时间要求紧迫。其中大都是基于关系数据库系统的B/S结构的WEB应用系统;该应用系统的目的是解决某一领域的业务问题,然而在开发过程中,除了业务需求要关注外,技术力量为开发团队的配置也是现实存在的问题。在软件开发维护过程中任何一个信息系统中都存在大量的基础数据对象维护,大部分只是简单的维护功能,业务逻辑并不复杂,但是由于基础数据对象数量众多,相同相似的模块即便是复制、粘贴也需要较多工作量去完成;程序的调试、程序代码的维护比较繁琐,如何帮助开发人员从烦琐的编码技术细节中解脱出来,减少重复代码开发的工作量,使其把主要精力用于关注业务问题和逻辑处理上,并提高开发效率和质量,是本领域技术人员一直研究的课题。
发明内容
本发明目的在于提供一种提高开发效率和质量的基于关系型数据库的J2EE代码生成方法。
为实现上述目的,本发明可采取下述技术方案:
本发明所述的基于关系型数据库的J2EE代码生成方法,包括下述步骤:
第一步、设置目标代码模板定义步骤:
依据已有的框架将不变的代码定义为模板,将可变的代码定义为宏;
即:首先由J2EE架构师为整个工程设计逻辑架构,按照所述工程设计逻辑架构要求,配置目标代码模板,将目标代码中可变的部分定义为宏,不变的部分直接写在模板中;
第二步、外部数据获取步骤:
获取关系型数据库表结构参数、数据库对象注释信息、结构化查询命令、代码生成配置参数以及操作系统参数;
即:由数据库工程师设计数据库对象结构,将所有表和列增加注释;启动应用程序haivDb4J2ee之后,应用程序根据上一次成功的连接配置进行数据库连接;或用户通过输入参数手工添加各种数据库的连接;应用程序自动读取数据库的表空间、数据库对象名、对象注释,并将这些内容以二维表格的形式展现在用户的面前;
第三步、逻辑运算步骤:
由所述获取到的参数通过逻辑运算得到与目标代码有相关的宏;
即:根据用户所输入的结构化查询命令或数据库对象结构生成默认的Java对象默认设置,自动根据表名拆分模块名和子模块名、根据表名生成符合匈牙利命名法的java类名和配置路径、根据表中字段名生成类中各成员变量名、根据字段类型生成成员变量类型、根据表注释生成类注释、根据列注释生成成员变量注释、根据系统时间生成文档注释、根据操作系统登录名完成目标代码签名;
第四步、代码生成步骤:将所述宏套用在代码模板中生成MVC三层架构的目标代码;
即:用户选择目标代码所用的模板;系统将上一步生成的宏与模板相结合,生成目标代码;用户选择目标代码保存的路径,将目标代码输出到指定的路径中,所生成的文件包括hibernate配置文件、struts配置文件、spring配置文件、MVC三层Java类、三层Java包、JSP增删改查文件,同时输出生成日志、文件清单及使用说明。
本发明优点在于根据巴列特定律中二八原则:“总结果的80%是由总消耗时间中的20%所形成的”,本方法以J2EE软件开发的二八原则为指导,实现了由关系型数据库生成J2EE代码的完整技术方案,具体表现为:
1、向下可以兼容80%主流关系型数据库:Oracle、SQL Server、DB2、My SQL,并可根据实际需要兼容各种关系型数据库。
2、向上可以生成各种架构的J2EE代码,支持利用模版生成代码,这意味着开发人员能充分利用团队已有优势来决定产生代码所要用到的技术,最终目标是尽可能不受限制地利用框架来产生代码;本方法提供了目前最流行的Struts+Spring+Hibernate组全,实现了MVC(模型-视图-控制器模式)三层架构。
3、haivDb4J2ee帮助程序员高效地完成了那些通用的、繁琐的占源代码80%的开发任务,大大地提高了工作效率,从而缩短了整个工程的开发时间,降低了软件的开发成本。
4、本方法使用数据库对象已有的注释来自动生成J2EE源代码中的注释,用系统时间和系统登录用户名来完成开发人员签名,自动完成了80%以上的代码注释工作量,提高了代码的易读性。
5、提供了数据表名称和java(程序设计语言和Java平台的总称)类名的默认转换关系、数据表字段名称和java对象成员名的默认转换关系、数据库字段类型和java变量的默认对应关系,提高了代码的规范性,自动生成的类名和对象名符合JavaBean的命名规范,80%以上的设置不需修改即可满足工程需要。
6、haivDB4J2ee(数据库客户端软件)同时又是一个简洁易用的数据库客户端工具,它建议开发人员将每个表和列都加上注释,从更高的层次隐蔽了不同关系型数据库的实现细节,使得表及注释以平面化的形式进行管理,是数据库管理员和项目开发、数据库管理人员的最佳选择。
附图说明
图1是本发明所述方法的数据流图。
图2是本发明所述方法的实现流程图。
具体实施方式
本发明所述的基于关系型数据库的J2EE代码生成方法,其特征在于:包括下述步骤:
第一步、设置目标代码模板定义步骤:
依据已有的框架将不变的代码定义为模板,将可变的代码定义为宏;
即:首先由J2EE架构师为整个工程设计逻辑架构,按照所述工程设计逻辑架构要求,配置目标代码模板,将目标代码中可变的部分定义为宏,不变的部分直接写在模板中。
第二步、外部数据获取步骤:
获取关系型数据库表结构参数、数据库对象注释信息、结构化查询命令、代码生成配置参数以及操作系统参数;
即:由数据库工程师设计数据库对象结构,将所有表和列增加注释;启动应用程序haivDb4J2ee之后,应用程序根据上一次成功的连接配置进行数据库连接;或用户通过输入参数手工添加各种数据库的连接;应用程序自动读取数据库的表空间、数据库对象名、对象注释,并将这些内容以二维表格的形式展现在用户的面前;程序员利用此工具可以方便地编辑数据库对象的注释,也可以在SQL语句输入区输入相应的命令,以完成和数据库的交互。用户打开一个表,显示列名、列类型、列注释以及其它属性。用户在SQL语句输入区输入结构化查询命令,或在数据库对象列表中选定某个对象,即可进入J2EE生成向导。本步骤的数据全部从数据库获取,不需要用户做额外的输入。
第三步、逻辑运算步骤:
由所述获取到的参数通过逻辑运算得到与目标代码有相关的宏;
即:根据用户所输入的结构化查询命令或数据库对象结构生成默认的Java对象默认设置,自动根据表名拆分模块名和子模块名、根据表名生成符合匈牙利命名法的java类名和配置路径、根据表中字段名生成类中各成员变量名、根据字段类型生成成员变量类型、根据表注释生成类注释、根据列注释生成成员变量注释、根据系统时间生成文档注释、根据操作系统登录名完成目标代码签名;这一系列操作基本上不需要用户干预即可按默认的规则完成,在完成这些工作的过程中,用户可以对发现的不合理之处做人工调整,工具将根据这些设置按照指定的方法,计算目标代码需要的宏值。
第四步、代码生成步骤:将所述宏套用在代码模板中生成MVC三层架构的目标代码;
即:用户选择目标代码所用的模板;系统将上一步生成的宏与模板相结合,生成目标代码;用户选择目标代码保存的路径,将目标代码输出到指定的路径中,所生成的文件包括hibernate配置文件、struts配置文件、spring配置文件、MVC三层Java类、三层Java包、JSP增删改查文件,同时输出生成日志、文件清单及使用说明;生成目标代码后,程序员把文件、文件夹以及整个java包复制下来粘贴到工程里,实现一个表的增删改查功能,而后做只需逻辑部分的修改完善,即可完成一个模块的开发。
Claims (1)
1.一种基于关系型数据库的J2EE代码生成方法,其特征在于:包括下述步骤:
第一步、设置目标代码模板定义步骤:
依据已有的框架将不变的代码定义为模板,将可变的代码定义为宏;
即:首先由J2EE架构师为整个工程设计逻辑架构,按照所述工程设计逻辑架构要求,配置目标代码模板,将目标代码中可变的部分定义为宏,不变的部分直接写在模板中;
第二步、外部数据获取步骤:
获取关系型数据库表结构参数、数据库对象注释信息、结构化查询命令、代码生成配置参数以及操作系统参数;
即:由数据库工程师设计数据库对象结构,将所有表和列增加注释;启动应用程序haivDb4J2ee之后,应用程序根据上一次成功的连接配置进行数据库连接;或用户通过输入参数手工添加各种数据库的连接;应用程序自动读取数据库的表空间、数据库对象名、对象注释,并将这些内容以二维表格的形式展现在用户的面前;
程序员利用此工具可以方便地编辑数据库对象的注释,也可以在SQL语句输入区输入相应的命令,以完成和数据库的交互;用户打开一个表,显示列名、列类型、列注释以及其它属性;用户在SQL语句输入区输入结构化查询命令,或在数据库对象列表中选定某个对象,即可进入J2EE生成向导;本步骤的数据全部从数据库获取,不需要用户做额外的输入;
第三步、逻辑运算步骤:
由所述获取到的参数通过逻辑运算得到与目标代码有相关的宏;
即:根据用户所输入的结构化查询命令或数据库对象结构生成默认的Java对象默认设置,自动根据表名拆分模块名和子模块名、根据表名生成符合匈牙利命名法的java类名和配置路径、根据表中字段名生成类中各成员变量名、根据字段类型生成成员变量类型、根据表注释生成类注释、根据列注释生成成员变量注释、根据系统时间生成文档注释、根据操作系统登录名完成目标代码签名;
第四步、代码生成步骤:
将所述宏套用在代码模板中生成MVC三层架构的目标代码;
即:用户选择目标代码所用的模板;系统将上一步生成的宏与模板相结合,生成目标代码;用户选择目标代码保存的路径,将目标代码输出到指定的路径中,所生成的文件包括hibernate配置文件、struts配置文件、spring配置文件、MVC三层Java类、三层Java包、JSP增删改查文件,同时输出生成日志、文件清单及使用说明;生成目标代码后,程序员把文件、文件夹以及整个java包复制下来粘贴到工程里,实现一个表的增删改查功能,而后做逻辑部分的修改完善,即可完成一个模块的开发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910066369 CN101697120B (zh) | 2009-11-05 | 2009-11-05 | 基于关系型数据库的j2ee代码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910066369 CN101697120B (zh) | 2009-11-05 | 2009-11-05 | 基于关系型数据库的j2ee代码生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101697120A CN101697120A (zh) | 2010-04-21 |
CN101697120B true CN101697120B (zh) | 2012-11-28 |
Family
ID=42142225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910066369 Active CN101697120B (zh) | 2009-11-05 | 2009-11-05 | 基于关系型数据库的j2ee代码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101697120B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156640A (zh) * | 2011-04-19 | 2011-08-17 | 山东浪潮金融信息系统有限公司 | 一种数据操作代码生成方法 |
CN103135976B (zh) * | 2011-11-30 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN102622228A (zh) * | 2012-02-27 | 2012-08-01 | 神州数码国信信息技术(苏州)有限公司 | 软件系统辅助开发方法 |
CN103309904B (zh) * | 2012-03-16 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种生成数据仓库etl 代码的方法及装置 |
CN102681852B (zh) * | 2012-05-16 | 2015-05-13 | 河南辉煌科技股份有限公司 | 基于JavaEE的敏捷开发方法 |
CN103383645B (zh) * | 2013-07-29 | 2016-05-11 | 北京邮电大学 | 代码生成方法及系统 |
CN103412749A (zh) * | 2013-07-29 | 2013-11-27 | 福建联迪商用设备有限公司 | 一种基于关系型数据库的代码生成方法及代码生成器 |
CN104461540A (zh) * | 2014-12-10 | 2015-03-25 | 浙江图讯科技有限公司 | 一种代码生成器的开发方法 |
CN104598233A (zh) * | 2015-01-12 | 2015-05-06 | 北京中交兴路车联网科技有限公司 | 一种代码生成方法 |
CN104915383B (zh) * | 2015-05-19 | 2018-03-02 | 中国电子科技集团公司第二十八研究所 | 一种通用数据库访问中自动适配对象的方法 |
CN105389339A (zh) * | 2015-10-20 | 2016-03-09 | 咸亨国际(杭州)物联网信息产业有限公司 | 一种快速生成数据库sql语句和实体类的工具 |
CN106886390B (zh) * | 2015-12-15 | 2021-06-18 | 大唐软件技术股份有限公司 | 一种Java对象生成和转换方法和Java对象生成和转换装置 |
CN106598620A (zh) * | 2016-12-21 | 2017-04-26 | 深圳南北互联网金融服务有限公司 | 代码生成方法及代码生成器 |
CN107729561A (zh) * | 2017-11-09 | 2018-02-23 | 成都卓凡软件科技有限公司 | 基于数据库表结构反向生成对数据库表操作的方法 |
CN107798129A (zh) * | 2017-11-17 | 2018-03-13 | 北京中电普华信息技术有限公司 | 一种整合Neo4j数据库与J2EE平台的方法及系统 |
CN108509199A (zh) * | 2018-03-09 | 2018-09-07 | 平安科技(深圳)有限公司 | 自动生成中文注释的方法、装置、设备及存储介质 |
CN108762743B (zh) * | 2018-05-23 | 2021-09-03 | 浪潮软件股份有限公司 | 一种数据表操作代码生成方法及装置 |
CN109240661B (zh) * | 2018-08-02 | 2022-01-21 | 武汉烽火众智数字技术有限责任公司 | 一种代码生成方法及装置 |
CN109492381A (zh) * | 2018-09-26 | 2019-03-19 | 深圳竹云科技有限公司 | 一种基于数据库的jaas扩展验证方法 |
CN110968307A (zh) * | 2018-09-29 | 2020-04-07 | 北京数聚鑫云信息技术有限公司 | 一种基于智能生成基础代码的微服务构建方法及装置 |
CN109522014B (zh) * | 2018-10-19 | 2024-04-16 | 中国平安人寿保险股份有限公司 | 基于新产品开发的算法处理方法、电子装置及可读存储介质 |
CN109885294A (zh) * | 2019-01-21 | 2019-06-14 | 四川商通实业有限公司 | 一种利用系统共性提高系统代码开发效率的方法 |
CN110147225A (zh) * | 2019-04-02 | 2019-08-20 | 平安科技(深圳)有限公司 | 一种代码生成方法、装置及计算机设备、存储介质 |
CN110209732A (zh) * | 2019-04-25 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 关系型数据库到Hadoop数据库的数据同步方法和装置 |
CN110196715A (zh) * | 2019-06-25 | 2019-09-03 | 上海仪电汽车电子系统有限公司 | 一种代码生成系统及方法 |
CN110674625A (zh) * | 2019-08-29 | 2020-01-10 | 浙江数链科技有限公司 | 代码生成的方法、装置、计算机设备和存储介质 |
CN110727438B (zh) * | 2019-09-11 | 2023-11-14 | 宝付网络科技(上海)有限公司 | 基于SpringBoot的web系统自动生成工具 |
CN110795080A (zh) * | 2019-10-21 | 2020-02-14 | 山东舜知信息科技有限公司 | 一种基于数据库注释的代码自动生成系统及构建方法 |
CN112068895B (zh) * | 2020-08-10 | 2023-12-19 | 深圳市鼎盛光电有限公司 | 代码配置方法、装置、视频播放设备及存储介质 |
CN112015429B (zh) * | 2020-08-21 | 2023-08-04 | 杭州指令集智能科技有限公司 | 一种代码生成方法、装置及设备 |
CN112346720A (zh) * | 2020-10-22 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 基于sql生成自定义代码的方法、设备和电子装置 |
CN112463135A (zh) * | 2020-12-11 | 2021-03-09 | 中国人寿保险股份有限公司 | 代码生成方法、代码生成器、电子设备及存储介质 |
CN113741902B (zh) * | 2021-09-10 | 2024-03-29 | 百融至信(北京)科技有限公司 | 一种基于模版的SaaS代码生成方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1864133A (zh) * | 2003-08-20 | 2006-11-15 | 日本烟草产业株式会社 | 程序生成系统、程序生成程序和程序生成模块 |
CN1945527A (zh) * | 2006-10-26 | 2007-04-11 | 山东浪潮齐鲁软件产业股份有限公司 | 可实现代码复用的server版代码生成系统 |
CN101154227A (zh) * | 2006-09-26 | 2008-04-02 | 中兴通讯股份有限公司 | 一种基于asn类型对象的代码生成方法 |
-
2009
- 2009-11-05 CN CN 200910066369 patent/CN101697120B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1864133A (zh) * | 2003-08-20 | 2006-11-15 | 日本烟草产业株式会社 | 程序生成系统、程序生成程序和程序生成模块 |
CN101154227A (zh) * | 2006-09-26 | 2008-04-02 | 中兴通讯股份有限公司 | 一种基于asn类型对象的代码生成方法 |
CN1945527A (zh) * | 2006-10-26 | 2007-04-11 | 山东浪潮齐鲁软件产业股份有限公司 | 可实现代码复用的server版代码生成系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101697120A (zh) | 2010-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101697120B (zh) | 基于关系型数据库的j2ee代码生成方法 | |
US8412549B2 (en) | Analyzing business data for planning applications | |
CN102567539B (zh) | 一种web智能报表的实现方法和系统 | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN101477462A (zh) | 一种用于动态改变系统行为的模型驱动软件开发方法 | |
CN102968306A (zh) | 一种基于数据模型驱动的代码自动生成方法和系统 | |
CN106873974A (zh) | 智能代码生成引擎系统及方法 | |
CN116225429A (zh) | 基于拖拽式组件框架的ipage网页式低代码开发平台 | |
CN104615617A (zh) | 一种变电站设备调度监控信息处理系统 | |
CN102810057A (zh) | 一种记录日志的方法 | |
CN103092589A (zh) | 一种基于ssh框架的代码自动生成方法 | |
CN111176613B (zh) | 基于体系结构模型的协同任务自动分解系统 | |
CN114461200A (zh) | 一种基于云SaaS平台的低代码开发应用及方法 | |
CN101714078A (zh) | 代码生成方法及装置 | |
CN102156640A (zh) | 一种数据操作代码生成方法 | |
Trojer et al. | Living modeling of IT architectures: challenges and solutions | |
CN102298740A (zh) | 一种业务流程管理支持方法 | |
US10505873B2 (en) | Streamlining end-to-end flow of business-to-business integration processes | |
Watson | Visual Modelling: past, present and future | |
CN103995699A (zh) | 基于mda的电力企业信息系统开发方法 | |
CN113407161B (zh) | 一种面向复杂装备进行协同研发管理系统 | |
Moravcik et al. | Elements of the modern application software development | |
Ma et al. | A hybrid model transformation approach based on j2ee platform | |
Liu et al. | Architecture of information system combining SOA and BPM | |
Souza et al. | A UML Profile for Modeling Framework-based Web Information Systems. |
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 |