CN102663103B - 可配置的自动化生成数据库和数据访问的方法 - Google Patents

可配置的自动化生成数据库和数据访问的方法 Download PDF

Info

Publication number
CN102663103B
CN102663103B CN201210109494.8A CN201210109494A CN102663103B CN 102663103 B CN102663103 B CN 102663103B CN 201210109494 A CN201210109494 A CN 201210109494A CN 102663103 B CN102663103 B CN 102663103B
Authority
CN
China
Prior art keywords
database
class
template
data access
type
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
Application number
CN201210109494.8A
Other languages
English (en)
Other versions
CN102663103A (zh
Inventor
何泾沙
张玉强
霍晓珍
徐晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Yuchen Technology Co Ltd
Original Assignee
Beijing University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201210109494.8A priority Critical patent/CN102663103B/zh
Publication of CN102663103A publication Critical patent/CN102663103A/zh
Application granted granted Critical
Publication of CN102663103B publication Critical patent/CN102663103B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明的可配置的自动化生成数据库和数据访问的方法,将业务需求分析阶段设计的UML类图转换成XML文件,通过解析读取XML文件生成元数据信息,信息包括对象的可访问性,名称和类型等基本属性,通过用户对配置文件的选择,选取使用的数据库和业务处理语言,生成数据库模板,实体类模板和数据访问类模板,根据元数据信息和生成的模板,利用系统的生成器生成系统的数据库,实体类以及数据访问类,实现了从UML类图向数据库,实体类和数据访问等的转换,使得数据库和数据访问层可以自适应对象及其属性的变化,当数据库类型以及业务处理语言发生变更的时候,也仅需要改动UML类图的设计重新生成数据库及数据访问层即可,提高了系统的可扩展性和维护性。

Description

可配置的自动化生成数据库和数据访问的方法
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种可配置的自动化生成数据库和数据访问的方法。
背景技术
现有的计算机应用系统的开发过程包括从业务需求分析,数据库设计,详细设计到开发和维护。其中UML建模,设计数据库,设计实体类,编写数据访问层是必不可少的。这个过程中,存在以下问题:
1.系统规模。随着数据的繁杂和庞大,系统中的实体类,类的属性数量也会大大增加。如果手工编写实体类和数据访问类,将会很耗费时间和精力。
2.数据属性更新。随着企业的数据越来越多,数据结构发生变化,直接导致开始设计的模型会发生变化,数据库结构发生变化,因此项目中的实体类以及数据访问层需要变化。
3.数据库以及业务处理语言的变更。一个大型的系统,其部署环境,语言支持可能发生变化,这就要求系统的数据库和语言能够支持变化。
针对以上问题,企业以及个人都做了改进及设计,比如Hibernate的出现,作为一种持久化技术,它为开发大大的节省了时间,用户能够利用它生成数据访问类,但是这种方法针对每个对象模型都得保存配置文件,随着项目的增大,配置文件的数量也随之增大,难于管理。鉴于Hibernate在某些场合下的不适用,也有利用反射技术实现的数据持久化方法被提出,这种方法避免了配置文件冗余的缺点,能够直接利用实体类生成数据访问层。但是这种方法在需求发生变化,数据的属性有所添加或修改,数据库及业务语言发生变化的时候,需要重新设计数据库,设计实体类以及生成对应的数据访问类。改动较多,工作量大。
模型驱动架构MDA是一种比较流行的架构,利用此架构能够实现从模型向目标代码的转换,但是此方法也很难避免数据库的大幅度改动带来的操作。
可见目前的持久化技术和模型驱动架构很难满足数据属性更新快时,确保操作简单有效,保证可扩展性和维护性。
因此,当下需要迫切解决的一个技术问题就是:如何能够提出一种有效的措施,以解决现有技术中存在的问题。
发明内容
本发明所要解决的技术问题是提供一种可配置的自动化生成数据库和数据访问的方法,有效克服现有技术中存在的问题。
为了解决上述技术问题,本发明提供了一种可配置的自动化生成数据库和数据访问的方法,包括:
根据业务需求设计UML类图,并将UML模型导出成XML文件,在内存中构造一棵XML树,并利用DOM解析技术读取XML内容,生成元数据信息;
利用配置文件选择当前使用的数据库类型和业务处理使用的面向对象语言,生成各自对应的模板,包括数据库模板,实体类模板,数据访问类模板;
根据元数据信息和生成的模板,利用系统的生成器生成数据库和实体类以及数据访问类。
进一步地,所述生成元数据信息包括对象的可访问性,对象的数据类型,对象的名称。
进一步地,所述配置文件包括对业务处理语言的选择,数据库的选择以及各个数据库连接池的配置。
进一步地,所述数据库模板是生成数据库脚本的模板,其中数据库表的名称与元数据信息的节点名称相同,列的名称即元数据信息节点的属性名称,列的数据类型即属性的类型在所选数据库中对应的类型。
进一步地,所述实体类模板是为了生成系统中的实体层,主要包括,实体类的可访问性,实体类的名称,实体类的属性名称,属性类型,根据不同的业务处理语言生成不同的实体类代码。
进一步地,所述数据访问类模板是根据数据库类型和业务处理语言类型生成的,包括了选择配置好的数据库连接池,根据生成的实体类,利用反射机制从实体类中提取所需要的字段名称和类型,构造数据的插入,删除,更新,查询操作,实现系统的数据访问类模板。
综上,本发明提供的可配置的自动化生成数据库和数据访问的方法,将业务需求分析阶段设计的UML类图转换成XML文件,通过对XML文件的解析读取,生成元数据信息,这些信息中包括了对象的基本属性,包括可访问性,名称,类型等。通过用户对配置文件的选择,选取使用的数据库和业务处理语言,生成数据库模板,实体类模板和数据访问类模板。根据元数据信息和生成的模板,利用系统的生成器生成系统的数据库,实体类以及数据访问类,从而实现了从UML类图向数据库,实体类以及数据访问等的转换。本方法使得对于数据库和数据访问层可以自适应对象及其属性的变化,无需大量的配置文件,也无需大量的人工操作,当数据库类型以及业务处理语言发生变更的时候,也仅需要改动UML类图的设计重新生成数据库及数据访问层即可,提高了系统的可扩展性和维护性。
更进一步地,本方法利用UML类图直接生成了数据库和数据访问层,保证了开发过程的简单、高效,无需编写大量冗余的代码,节省了开发时间。当需求变更的时候,此方法更利于系统的维护和更新,由于数据库和数据访问都是由UML类图生成的,因此仅需要维护UML模型图即可,降低了开发的风险。由于数据访问层是根据模板生成的,因此模板越完善,生成的数据访问层的代码质量就越高,越能节省时间,提高效率,且由于自动化的生成数据库和数据访问类,大大的节省了开发的时间,因此可以使得开发周期变短,开发成本降低。
附图说明
图1是本发明的具体实施方式所述的可配置的自动化生成数据库和数据访问的方法的流程示意图;
图2是本发明的具体实施方式所述的方法流程图的上位结构框图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的目的是提出一种可配置的自动化生成数据库和数据访问的方法,通过本发明可以使得系统的开发过程更加自动化,随着业务需求的不断变化,系统能够适应变更,避免了大量的配置文件的使用以及大量的人工编码过程,从而提高了系统的开发效率,可扩展性和可维护性,降低了系统的开发成本。
图1所示为可配置的自动化生成数据库和数据访问的方法的流程示意图,具体包括:
步骤一:分析系统的业务需求,使用建模工具如Rational Rose对分析出的类进行建模,标出包括类的名称,类的可访问性,类的属性,属性对应的类型。将UML类图导出为XML文件保存。类的属性中需要设计唯一的ID号,类型为长整型。
本实施例中采用学生管理系统,以学生为例,设计学生的类图,并将此类图导出成对应的XML文件。
对生成的XML文件的解析和读取使用DOM解析技术,在内存中构造一棵树,并对其内容进行解析读取,读取到的内容包括对象的名称,可访问性,对象的属性,属性的类型。
步骤二:系统中的配置文件内容包括:数据库的类型以及该类型对应的数据库连接池;业务处理语言的类型。配置文件的使用是为了给用户提供数据库和业务处理语言类型的选择,方便于系统的维护。
系统提供的模板包括数据库模板,实体类模板和数据访问类模板。对各个模板的要求包括:
1.数据库模板。数据库模板是为了生成数据库脚本。模板中包括数据库以及表的建立。模板中提供了数据库脚本的基本框架以及数据库名称,表名称,列名称,列的类型,表的主键参数的设置。其中数据库的名称已确定(默认为项目名称)。
2.实体类模板。实体类模板是为了生成系统中的实体类。模板中包括实体类的框架以及命名空间(已确定,即项目下的实体类),类名称,类的可访问性,类的属性名,属性的类型参数的设置。
3.数据访问类模板。数据访问类模板是为了生成系统中的数据访问类。模板中包括了数据库的连接,对象的插入,删除,更新,查询操作,仅仅是框架,并没有具体的实现。
步骤三:根据元数据信息和生成的模板,利用系统的生成器生成数据库和实体类以及数据访问类。
利用系统的生成器生成数据库、实体类和数据访问类的前提是加载XML文件解析得到的元数据信息(称为节点,包括节点的名称,属性),加载对应数据库类型和业务处理语言类型的模板,生成过程包括:
1.数据库的生成:从元数据信息中可以获取模板所需要的表名即节点的名称,列名即节点的属性名,列的类型即节点的属性类型在数据库中的类型,表的主键即节点的属性ID,根据这些模板需要的参数信息,可生成完整的数据库脚本,再执行脚本生成数据库。
2.实体类的生成:从元数据信息中可以获取模板所需要的类名称即节点的名称,类的可访问性即节点中可访问性属性的值,类的属性名即节点的属性名,类的属性类型即节点的类型在该语言中的对应的类型,根据这些参数信息,可生成完整的实体类。
3.数据访问类的生成:
a)读取配置文件中所选数据库的数据库连接提供给模板使用。
b)对于对象的插入,删除,更新以及查询操作,可利用生成的实体类,根据反射原理进行生成。
i.生成SQL语句的操作。
对于插入和更新的数据访问方法,其输入参数为对应的实体类,由于数据库中表的名称和实体类的名称相同,表的列名和实体类的属性相同,因此可以利用反射技术遍历实体类的各个属性,获取属性的名称,类型以及对应的值,用来生成插入和更新的SQL语句。对于删除的数据访问方法,由于删除是按照表的主键进行的,因此可以根据实体类获取属性ID以及ID对应的值,生成删除的SQL语句。对于无条件查询所有记录的数据访问方法,可直接使用实体类的名称作为表名生成SQL语句。对于有条件查询的数据访问方法,可将实体类作为传入参数生成SQL语句。
ii.生成数据访问类。
插入,删除,更新以及查询操作的SQL语句生成后,需要对这些方法进行封装,形成整个的数据访问类。此类中至少包括四个方法,插入操作,删除操作,更新操作,查询操作。而每个操作的传入参数都是对应的实体类,对于前三个操作的返回参数是布尔类型的结果,对于查询操作返回的结果,需要利用反射技术将SQL语句执行获取的数据库记录映射成实体类的集合,此集合即为查询返回的结果。从而形成整个的数据访问类。
将生成的实体类和数据访问类部署到项目中直接使用。
更为系统地,本发明所述方法流程图的上位结构框图可参照图2。
以上对本发明所提供的可配置的自动化生成数据库和数据访问的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (1)

1.一种可配置的自动化生成数据库和数据访问的方法,其特征在于,包括:根据业务需求设计UML类图,并将UML模型导出成XML文件,在内存中构造一棵XML树,并利用DOM解析技术读取XML内容,生成元数据信息;利用配置文件选择当前使用的数据库类型和业务处理使用的面向对象语言,生成各自对应得模板,包括数据库模板、实体类模板、数据访问类模板;根据元数据信息和生成的模板,利用系统的生成器生成数据库和实体类以及数据访问类;所述生成元数据信息包括对象的可访问性、对象的数据类型、对象的名称;所述配置文件包括对业务处理语言的选择、数据库的选择以及各个数据库连接池的配置;所述数据库模板是生成数据库脚本的模板,其中数据库表的名称与元数据信息的节点名称相同,列的名称即元数据信息节点的属性名称,列的数据类型即属性的类型在所选数据库中对应的类型;所述实体类模板是为了生成系统中的实体层,包括,实体类的可访问性、实体类的名称、实体类的属性名称、属性类型,根据不同的业务处理语言生成不同的实体类代码;所述数据访问类模板是根据数据库类型和业务处理语言生成不同的实体类代码;所述数据访问类模板是根据数据库类型和业务处理语言类型生成的,包括了选择配置好的数据库连接池,根据生成的实体类,利用反射机制从实体类中提取所需要的字段名称和类型,构造数据的插入、删除、更新、查询操作,实现系统的数据访问类模板。
CN201210109494.8A 2012-04-13 2012-04-13 可配置的自动化生成数据库和数据访问的方法 Active CN102663103B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210109494.8A CN102663103B (zh) 2012-04-13 2012-04-13 可配置的自动化生成数据库和数据访问的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210109494.8A CN102663103B (zh) 2012-04-13 2012-04-13 可配置的自动化生成数据库和数据访问的方法

Publications (2)

Publication Number Publication Date
CN102663103A CN102663103A (zh) 2012-09-12
CN102663103B true CN102663103B (zh) 2015-03-04

Family

ID=46772594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210109494.8A Active CN102663103B (zh) 2012-04-13 2012-04-13 可配置的自动化生成数据库和数据访问的方法

Country Status (1)

Country Link
CN (1) CN102663103B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999600A (zh) * 2012-11-20 2013-03-27 中兴通讯股份有限公司 一种嵌入式数据库自动生成方法和系统
CN103020285B (zh) * 2012-12-27 2016-01-13 北京仿真中心 跨数据库支持多字段组合的自动编码方法和系统
CN103226478B (zh) * 2013-05-22 2016-12-28 北京金和软件股份有限公司 一种自动生成并使用代码的方法
CN103714129B (zh) * 2013-12-12 2016-09-14 用友网络科技股份有限公司 基于条件规则的动态数据结构和关系的构建装置和构建方法
CN104166737B (zh) * 2014-09-04 2018-02-02 北京国双科技有限公司 用于数据库名称的修改方法和装置
CN104408118B (zh) * 2014-11-25 2019-05-31 北京国双科技有限公司 数据库的创建方法和装置
CN104539519B (zh) * 2014-12-27 2019-07-30 宁波江东远通计算机有限公司 一种联系人信息管理方法及装置
CN104573053B (zh) * 2015-01-21 2016-04-20 郑州轻工业学院 一种基于xml的配置项模板动态定制方法
CN104932904A (zh) * 2015-07-14 2015-09-23 福建农林大学 一种针对智能家居的可配置数据库编程模式
CN105160012B (zh) * 2015-09-23 2019-03-26 烽火通信科技股份有限公司 一种异构数据库的管理方法及系统
CN106933552B (zh) * 2015-12-30 2020-11-03 中国移动通信集团公司 一种数据处理方法及前端代码生成装置
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
CN106960048B (zh) * 2017-03-30 2021-10-01 深圳市来玩科技有限公司 一种基于Java的数据库与实体类自动映射方法
CN107943819A (zh) * 2017-10-09 2018-04-20 中国电子科技集团公司第二十八研究所 一种基于元数据配置的数据管理方法及装置
CN108399188B (zh) * 2018-01-19 2023-04-07 北京天耀宏图科技有限公司 一种基于类型元数据的强业务对象的通用建立和处理方法
CN108345691B (zh) * 2018-03-15 2021-03-19 鼎富智能科技有限公司 数据源通用处理框架构建方法、数据源处理方法及装置
CN108536873A (zh) * 2018-05-05 2018-09-14 上饶市普适科技有限公司 一种利用xml建立面向对象的关系型数据库
CN109165332A (zh) * 2018-09-13 2019-01-08 郑州云海信息技术有限公司 一种网页信息获取方法、装置以及设备
CN113157784B (zh) * 2020-12-30 2023-02-21 浪潮云信息技术股份公司 一种数据库数据导出工具的插件化实现方法
CN113791768B (zh) * 2021-09-22 2023-04-14 海通证券股份有限公司 代码生成方法及装置、存储介质、终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1804840A (zh) * 2005-01-12 2006-07-19 微软公司 数据访问层类生成器
CN101008952A (zh) * 2007-01-30 2007-08-01 华为技术有限公司 一种持久层生成方法及装置
CN101114226A (zh) * 2007-08-28 2008-01-30 北京中企开源信息技术有限公司 一种基于模型组件的代码自动生成装置、系统及方法
CN102156640A (zh) * 2011-04-19 2011-08-17 山东浪潮金融信息系统有限公司 一种数据操作代码生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110088011A1 (en) * 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1804840A (zh) * 2005-01-12 2006-07-19 微软公司 数据访问层类生成器
CN101008952A (zh) * 2007-01-30 2007-08-01 华为技术有限公司 一种持久层生成方法及装置
CN101114226A (zh) * 2007-08-28 2008-01-30 北京中企开源信息技术有限公司 一种基于模型组件的代码自动生成装置、系统及方法
CN102156640A (zh) * 2011-04-19 2011-08-17 山东浪潮金融信息系统有限公司 一种数据操作代码生成方法

Also Published As

Publication number Publication date
CN102663103A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102663103B (zh) 可配置的自动化生成数据库和数据访问的方法
CN106095408B (zh) 一种数据监控和代码自动生成与部署的系统及方法
CN108647330B (zh) 一种基于bim模型文件的3d轻量化转换方法
CN105447122B (zh) 一种基于多表关联可自主创建档案系统的实现方法
CN102968306B (zh) 一种基于数据模型驱动的代码自动生成方法和系统
CN103049251B (zh) 一种数据库持久层装置及数据库操作方法
CN103984755A (zh) 基于多维度模型的油气资源数据要览系统实现方法及系统
CN105094818A (zh) 基于soa的自然资源综合应用构建方法及系统
CN102360290A (zh) 表单生成装置和表单生成方法
CN101727324A (zh) 一种代码生成方法及装置
CN101799753B (zh) 一种实现树形结构的方法及装置
CN101714078A (zh) 代码生成方法及装置
CN106873974A (zh) 智能代码生成引擎系统及方法
CN103853543A (zh) 一种应用于企业信息系统开发过程中快速构建表单的方法
CN103903086A (zh) 一种基于业务模型驱动的管理信息系统开发方法及系统
CN102096688A (zh) 数据报表的生成方法及装置
CN101499063A (zh) 基于跟踪的数据库模式演进方法及系统
CN104881490A (zh) 一种web表单数据存取方法和系统
CN103116500A (zh) 一种结构体定义和结构输出的方法及装置
CN103927385A (zh) 数据模型的统一方法及装置
CN111813814A (zh) 一种支持多种机器学习框架的通用模型管理方法和装置
CN111666355B (zh) 一种领域、数据、场景三层模型的模型构建方法及装置
CN116226112A (zh) 数据清洗方法、装置、存储介质及电子设备
CN105468793A (zh) 一种仿真模型数据的自动化管理方法
TWI629602B (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
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: He Jingsha

Inventor after: Zhang Yuqiang

Inventor after: Huo Xiaozhen

Inventor after: Xu Jing

Inventor before: He Jingsha

Inventor before: Huo Xiaozhen

Inventor before: Zhang Yuqiang

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: HE JINGSHA HUO XIAOZHEN ZHANG YUQIANG TO: HE JINGSHA ZHANG YUQIANG HUO XIAOZHEN XU JING

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201116

Address after: 233000 Room 102 north, No.11, No.2 building, liukm Huayuan commercial building, Changqing Township, Yuhui District, Bengbu City, Anhui Province

Patentee after: Anhui Licha Information Technology Co.,Ltd.

Address before: 102600, room 2, building 2212, center 3, 2 Xinghua street, Daxing District, Beijing

Patentee before: BEIJING YONGBO TECHNOLOGY Co.,Ltd.

Effective date of registration: 20201116

Address after: 102600, room 2, building 2212, center 3, 2 Xinghua street, Daxing District, Beijing

Patentee after: BEIJING YONGBO TECHNOLOGY Co.,Ltd.

Address before: 100022 No. 100 Chaoyang District Ping Tian Park, Beijing

Patentee before: Beijing University of Technology

TR01 Transfer of patent right
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210716

Address after: 100089 2F, building 170, qingqinluyuan, Haidian District, Beijing

Patentee after: Zhongke Yuchen Technology Co.,Ltd.

Address before: 233000 Room 102 north, No.11, No.2 building, liukm Huayuan commercial building, Changqing Township, Yuhui District, Bengbu City, Anhui Province

Patentee before: Anhui Licha Information Technology Co.,Ltd.