CN102156640A - 一种数据操作代码生成方法 - Google Patents
一种数据操作代码生成方法 Download PDFInfo
- Publication number
- CN102156640A CN102156640A CN2011100974630A CN201110097463A CN102156640A CN 102156640 A CN102156640 A CN 102156640A CN 2011100974630 A CN2011100974630 A CN 2011100974630A CN 201110097463 A CN201110097463 A CN 201110097463A CN 102156640 A CN102156640 A CN 102156640A
- Authority
- CN
- China
- Prior art keywords
- code
- data
- definition
- metamessage
- template
- 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 19
- 238000012545 processing Methods 0.000 claims description 5
- 238000013499 data model Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种数据操作代码生成方法,是利用模板技术,根据数据库元信息生成数据操作代码,无需配置即可整合到系统中,系统包括代码模板、数据库元信息、元信息过滤器、代码生成器、数据操作代码;代码模板:代码模板提供待生成代码的定义,分成以下两个部分:1)数据对象代码模板,2)数据操作代码模板;其中,1)数据对象代码模板:实现数据库对象元信息在面向对象语言中的定义,至少包括:对象定义、对象属性定义,对象属性读取定义;2)数据操作代码模板:负责所生成代码的内容,通过模板来定制所生成的代码;实现数据操作方法在面向对象语言中的定义,至少包括:数据检索器定义、数据删除定义、数据更新定义、数据主键定义。
Description
技术领域
本发明设计一种计算机应用技术,具体涉及一种数据操作代码生成方法。
背景技术
对于大多数IT软件应用系统,与数据库交互是不可避免的。通常,首先从数据库检索数据,然后在应用系统中根据业务规则完成数据的处理加工,最后更新数据库。
对于数据操作代码,通常情况下都手工编写代码。由于业务复杂度的提高,数据模型的膨胀,手工编写代码工作量大并且质量难以保证。虽然可以借助于对象关系映射(ORM)工具,如Hibernate,但由于系统层次的增多,会牺牲系统性能;另外,其引入的繁琐配置、新知识,人为增加了使用成本。
针对上述问题,本发明提出一种基于数据库元信息的数据操作代码生成方法,就是在SQL语言、面向对象语言(如JAVA)两种知识的基础上,利用模板技术,根据数据库元信息,实现数据操作代码的生成,零配置即可整合到系统中。
发明内容
本发明的目的是提供一种数据操作代码生成方法。
本发明的目的是按以下方式实现的,是利用模板技术,根据数据库元信息生成数据操作代码,无需配置即可整合到系统中,系统包括代码模板、数据库元信息、元信息过滤器、代码生成器、数据操作代码;
代码模板:代码模板提供待生成代码的定义,分成以下两个部分:1)数据对象代码模板,2)数据操作代码模板;其中,
1)数据对象代码模板:实现数据库对象元信息在面向对象语言中的定义,至少包括:对象定义、对象属性定义,对象属性读取定义;
2)数据操作代码模板:负责所生成代码的内容,通过模板来定制所生成的代码;实现数据操作方法在面向对象语言中的定义,至少包括:数据检索器定义、数据删除定义、数据更新定义、数据主键定义;
数据库元信息:数据库元信息是生成器的数据输入,到少需要以下元信息:表定义、列定义,表定义包括以下元信息:表的名字、表的主键、视图的名字列定义包括以下元信息:列的名字、列的数据类型;当数据模型结构变更时,数据操作代码即可实时生成;
元信息过滤器:完成数据列元信息的过滤,通过消除对冗余列的操作,保证系统性能,为了方便操作元信息,提供了专门的人机界面,在界面中直接通过选择操作,选择那些数据列要过滤,那些数据列需要操作;指定虚拟数据主键;
代码生成器:代码生成器读取每条元信息,根据代码模板定义,生成相应的数据操作代码;
数据操作代码:由SQL语言、面向对象语言组成,无需配置即可集成到原有代码工程中,操作代码生成步骤如下:
1)分析系统环境:数据库类型、业务处理语言
2)根据系统要求,定义数据操作代码模板
3)确认待生成代码所对应的数据库元信息
(1)根据业务需要,过滤掉冗余的数据元信息
(2)根据业务需要,指定虚拟数据主键
4)运行代码生成器,生成数据操作代码
5)部署数据操作代码至项目工程中,完成代码生成。
本发明的优异效果:本发明的代码生成方法,充分利用了现有计算机语言知识,无需引入新的知识点,降低了使用成本。通过本发明的元数据过滤器,根据业务需要可以定制那些列的数据是不需操作的,降低了内存消耗,提升了系统IO性能。使用本发明生成的数据操作代码,代码质量高,降低了业务处理中对SQL语言知识的要求,无需配置即可集成到项目工程中。
附图说明
图1是组件结构示意图;
图2是实施流程图;
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
本发明的一种数据操作代码生成方法,系统包括代码模板、数据库元信息、元信息过滤器、代码生成器、数据操作代码;
代码模板:代码模板提供待生成代码的定义,分成以下两个部分:数据对象代码(POJO)模板、数据操作代码(DAO)模板;其中,数据对象代码模板:实现数据库对象元信息在面向对象语言中的定义,至少包括:对象定义、对象属性定义,对象属性读取定义;数据操作代码模板:实现数据操作方法在面向对象语言中的定义,至少包括:数据检索器定义、数据删除定义、数据更新定义、数据主键(Primary Key)定义;
数据库元信息:数据库元信息是生成器的数据输入,到少需要以下元信息:表定义、列定义。表定义包括以下元信息:表的名字、表的主键(Primary Key)、视图(View)的名字列定义包括以下元信息:列的名字、列的数据类型
元信息过滤器:元信息过滤器完成数据列元信息的过滤,通过消除对冗余列的操作,保证系统性能。为了方便操作元信息,提供了专门的人机界面。在界面中,可以直接通过选择操作,选择那些数据列要过滤,那些数据列需要操作;可以指定虚拟数据主键。
代码生成器:代码生成器读取每条元信息,根据代码模板定义,生成相应的数据操作代码。
数据操作代码:由SQL语言、面向对象语言组成,无需配置即可集成到原有代码工程中;
实施可按下方式展开,具体流程见图2:
1)分析系统环境:数据库类型、业务处理语言
2)根据系统要求,定义数据操作代码模板
3)确认待生成代码所对应的数据库元信息
(1)根据业务需要,过滤掉冗余的数据元信息
(2)根据业务需要,指定虚拟数据主键
4)运行代码生成器,生成数据操作代码
5)部署数据操作代码至项目工程中,完成代码生成。
实施例:
本发明已成功应用于浪潮信用评级平台。系统实施人员通过图形化的元信息操作界面、代码生成器,生成数据操作代码,零配置部署到项目工程中。
Claims (1)
1.一种数据操作代码生成方法,其特征在于,是利用模板技术,根据数据库元信息生成数据操作代码,无需配置即可整合到系统中,系统包括代码模板、数据库元信息、元信息过滤器、代码生成器、数据操作代码;
代码模板:代码模板提供待生成代码的定义,分成以下两个部分:1)数据对象代码模板,2)数据操作代码模板;其中,
1)数据对象代码模板:实现数据库对象元信息在面向对象语言中的定义,至少包括:对象定义、对象属性定义,对象属性读取定义;
2)数据操作代码模板:负责所生成代码的内容,通过模板来定制所生成的代码;实现数据操作方法在面向对象语言中的定义,至少包括:数据检索器定义、数据删除定义、数据更新定义、数据主键定义;
数据库元信息:数据库元信息是生成器的数据输入,到少需要以下元信息:表定义、列定义,表定义包括以下元信息:表的名字、表的主键、视图的名字列定义包括以下元信息:列的名字、列的数据类型;当数据模型结构变更时,数据操作代码即可实时生成;
元信息过滤器:完成数据列元信息的过滤,通过消除对冗余列的操作,保证系统性能,为了方便操作元信息,提供了专门的人机界面,在界面中直接通过选择操作,选择那些数据列要过滤,那些数据列需要操作;指定虚拟数据主键;
代码生成器:代码生成器读取每条元信息,根据代码模板定义,生成相应的数据操作代码;
数据操作代码:由SQL语言、面向对象语言组成,无需配置即可集成到原有代码工程中,操作代码生成步骤如下:
1)分析系统环境:数据库类型、业务处理语言
2)根据系统要求,定义数据操作代码模板
3)确认待生成代码所对应的数据库元信息
(1)根据业务需要,过滤掉冗余的数据元信息
(2)根据业务需要,指定虚拟数据主键
4)运行代码生成器,生成数据操作代码
5)部署数据操作代码至项目工程中,完成代码生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100974630A CN102156640A (zh) | 2011-04-19 | 2011-04-19 | 一种数据操作代码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100974630A CN102156640A (zh) | 2011-04-19 | 2011-04-19 | 一种数据操作代码生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102156640A true CN102156640A (zh) | 2011-08-17 |
Family
ID=44438148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100974630A Pending CN102156640A (zh) | 2011-04-19 | 2011-04-19 | 一种数据操作代码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102156640A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663103A (zh) * | 2012-04-13 | 2012-09-12 | 北京工业大学 | 可配置的自动化生成数据库和数据访问的方法 |
CN103473108A (zh) * | 2013-08-12 | 2013-12-25 | 福建富士通信息软件有限公司 | 一种Java代码生成方法 |
CN104317590A (zh) * | 2014-10-22 | 2015-01-28 | 中国建设银行股份有限公司 | 嵌入式配置系统及嵌入式配置审核流程的方法 |
CN105242933A (zh) * | 2015-10-22 | 2016-01-13 | 浪潮电子信息产业股份有限公司 | 一种将软件开发方法及装置 |
CN107273109A (zh) * | 2013-02-06 | 2017-10-20 | 谷歌公司 | 对源代码建模的方法和系统以及使用数据模型的方法 |
CN108073499A (zh) * | 2016-11-10 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法及装置 |
CN109101229A (zh) * | 2018-07-26 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种面向对象的代码自动生成方法、装置及设备 |
CN109492381A (zh) * | 2018-09-26 | 2019-03-19 | 深圳竹云科技有限公司 | 一种基于数据库的jaas扩展验证方法 |
CN109739493A (zh) * | 2019-01-18 | 2019-05-10 | 宜创(北京)科技有限公司 | 数据库操作语句的生成方法、装置、电子设备及存储介质 |
CN113535141A (zh) * | 2020-04-16 | 2021-10-22 | 浙江大搜车软件技术有限公司 | 数据库操作代码的生成方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2367391A (en) * | 2000-04-28 | 2002-04-03 | Ibm | Data access code generation |
CN101697120A (zh) * | 2009-11-05 | 2010-04-21 | 河南辉煌科技股份有限公司 | 基于关系型数据库的j2ee代码生成方法 |
-
2011
- 2011-04-19 CN CN2011100974630A patent/CN102156640A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2367391A (en) * | 2000-04-28 | 2002-04-03 | Ibm | Data access code generation |
CN101697120A (zh) * | 2009-11-05 | 2010-04-21 | 河南辉煌科技股份有限公司 | 基于关系型数据库的j2ee代码生成方法 |
Non-Patent Citations (1)
Title |
---|
冉春娟等: "基于关系数据模型代码生成器的设计与实现", 《湖北大学学报(自然科学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663103B (zh) * | 2012-04-13 | 2015-03-04 | 北京工业大学 | 可配置的自动化生成数据库和数据访问的方法 |
CN102663103A (zh) * | 2012-04-13 | 2012-09-12 | 北京工业大学 | 可配置的自动化生成数据库和数据访问的方法 |
CN107273109B (zh) * | 2013-02-06 | 2020-11-10 | 谷歌有限责任公司 | 对源代码建模的方法和系统以及使用数据模型的方法 |
CN107273109A (zh) * | 2013-02-06 | 2017-10-20 | 谷歌公司 | 对源代码建模的方法和系统以及使用数据模型的方法 |
CN103473108A (zh) * | 2013-08-12 | 2013-12-25 | 福建富士通信息软件有限公司 | 一种Java代码生成方法 |
CN104317590A (zh) * | 2014-10-22 | 2015-01-28 | 中国建设银行股份有限公司 | 嵌入式配置系统及嵌入式配置审核流程的方法 |
CN105242933A (zh) * | 2015-10-22 | 2016-01-13 | 浪潮电子信息产业股份有限公司 | 一种将软件开发方法及装置 |
CN108073499A (zh) * | 2016-11-10 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法及装置 |
CN108073499B (zh) * | 2016-11-10 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法及装置 |
CN109101229A (zh) * | 2018-07-26 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种面向对象的代码自动生成方法、装置及设备 |
CN109492381A (zh) * | 2018-09-26 | 2019-03-19 | 深圳竹云科技有限公司 | 一种基于数据库的jaas扩展验证方法 |
CN109739493A (zh) * | 2019-01-18 | 2019-05-10 | 宜创(北京)科技有限公司 | 数据库操作语句的生成方法、装置、电子设备及存储介质 |
CN113535141A (zh) * | 2020-04-16 | 2021-10-22 | 浙江大搜车软件技术有限公司 | 数据库操作代码的生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102156640A (zh) | 一种数据操作代码生成方法 | |
CN101697120B (zh) | 基于关系型数据库的j2ee代码生成方法 | |
CN102722372B (zh) | 一种通过分类配置自动生成代码的方法及系统 | |
CN102663103B (zh) | 可配置的自动化生成数据库和数据访问的方法 | |
CN101794226B (zh) | 一种适应多业务抽象层次的服务化软件构造方法和系统 | |
CN102810057B (zh) | 一种记录日志的方法 | |
CN102508669A (zh) | 一种程序代码自动生成方法 | |
CN103093000A (zh) | 数据库查询建模系统和数据库查询建模方法 | |
CN103903086A (zh) | 一种基于业务模型驱动的管理信息系统开发方法及系统 | |
CN101477462A (zh) | 一种用于动态改变系统行为的模型驱动软件开发方法 | |
CN104331285A (zh) | 一种代码自动生成方法及系统 | |
CN104063495A (zh) | 表单扩展方法与表单扩展装置 | |
CN103019726A (zh) | 软件系统业务规则的管理方法和装置 | |
CN102902767A (zh) | 一种表格快速搭建的方法及系统 | |
CN106873974A (zh) | 智能代码生成引擎系统及方法 | |
CN103093038A (zh) | 一种物料清单的更新方法及装置 | |
CN102393889A (zh) | 一种权限配置管理系统 | |
CN103186632A (zh) | 一种运维表单定制的方法及装置 | |
CN101714078A (zh) | 代码生成方法及装置 | |
CN104978411A (zh) | 一种高速列车的车型开发方法和装置 | |
CN105653255A (zh) | 一种在office框架中设置报告模板以自动生成报告文件的方法 | |
CN102932416B (zh) | 一种信息流任务的中间数据存储方法、处理方法及装置 | |
CN102215264B (zh) | 一种支持多租户数据与服务定制运行的方法和装置 | |
CN102243677B (zh) | 基于SysML驱动的产品详细设计模型自动生成方法 | |
CN101604286B (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110817 |