一种自动建立关系模型的集成开发环境IDE系统,其特征在于,该系统包括: 模型信息采集引擎,用于从对象模型采集得到模型关联信息,并将所述模型关联信息发送给自动转换引擎; 自动转换引擎,用于根据预设的映射规则定义文件、所述模型关联信息和对象模型,生成关系模型。
【技术实现步骤摘要】
本专利技术涉及数据库
,特别是一种。
技术介绍
当前,在应用中通常将JAVA2企业版(J2EE)系统的体系结构分为三个基本层次展示层、业务逻辑层和数据源层,其中展示层用于向最终用户提供界面,业务逻辑层用于进行各个领域中的业务逻辑处理,数据源层用于处理和关系数据库、消息系统的连接,并完成事务管理等功能。在上述三个基本层次中,数据源层是非常重要的层次,在实际应用中数据源的大多数应用场景是关系数据库。在J2EE的体系架构中,可以通过JAVA数据库连接技术(JDBC)直接对关系数据库进行访问,这也是大多数应用所采用的数据访问方式,但是在应用程序中使用JDBC访问数据库将会导致业务处理逻辑和数据访问代码混杂在一起,不利于后期的维护。而对象/关系映射技术是一种很好的替代方案,在关系数据库访问接口上使用对象/关系映射技术可以通过面向对象(OO)模型屏蔽后台数据库系统的差异,并且系统的数据模型易于理解,有利于提高编程的效率,还可以提高代码的可读性和可维护性。目前比较成熟的对象/关系映射解决方案有三类,以下分别说明。第一类为基于对象模型的建模方案。基于对象模型的建模方案完全以对象模型为中心,主要是以统一模型化语言(UML)为代表的图形化建模工具。但是,该类方案没有针对数据访问层的应用场景做裁减,所以使用比较复杂;并且该类方案没有提供对象模型到关系模型的映射工具,关系模型的维护需要通过另外的工具实现,集成度较低;而且该方案没有针对对象/关系映射技术的集成,手工集成的工作量较大。第二类为基于关系模型的建模方案。基于关系模型的解决方案完全以关系模型为中心,主要是以实体关系(ER)图为代表的图形化建模工具。但是这类方案没有提供对象模型到关系模型的映射工具,对象模型的维护需要通过另外的工具实现,集成度较低;而且没有针对对象/关系映射技术的集成,手工集成的工作量较大。第三类为基于配置文件的对象关系映射方案。这种方案以Hibernate技术为代表。使用这种映射方案,用户需要提供大量的配置文件,用户需要理解类之间的关联、继承、组合等关系,并把这些类和关系的映射规则手工编写成为对应的配置文件和映射文件。这种技术方案的缺点是其没有提供自动化的开发工具,完全依赖于用户的手工劳动;难于维护,配置文件、映射规则、数据库建表脚本都需要手工编写,任何一个地方修改都会牵涉其他地方的修改,修改过程中容易导致错误。
技术实现思路
有鉴于此,本专利技术提出了一种建立关系模型的方法,用以提高系统集成度,降低手工集成工作量,从而提高开发效率。本专利技术的另一个目的是提供一种建立关系模型的系统。为实现上述目的,本专利技术提供了一种自动建立关系模型的IDE系统,该系统包括模型信息采集引擎,用于从对象模型采集得到模型关联信息,并将所述模型关联信息发送给自动转换引擎;自动转换引擎,用于根据预设的映射规则定义文件、所述模型关联信息和对象模型,生成关系模型。所述自动转换引擎进一步用于生成映射文件。所述自动转换引擎包括第一自动转换引擎,用于根据预设的映射规则定义文件、所述模型关联信息和对象模型,生成映射文件;模型输出工具,用于根据所述映射文件生成关系模型。本专利技术还提供了一种自动建立关系模型的方法,该方法包括以下步骤设置对象模型到关系模型的映射规则,以及从对象模型中采集模型关联信息;根据所述映射规则和模型关联信息以及对象模型,自动生成关系模型。所述从对象模型中采集模型关联信息的步骤为遍历对象模型,并获取模型关联信息。所述根据映射规则和模型关联信息以及对象模型自动生成关系模型的步骤包括根据所述映射规则和模型关联信息以及对象模型生成映射文件;根据映射文件生成关系模型。所述根据映射规则和模型关联信息以及对象模型自动生成关系模型的步骤进一步包括生成映射文件的步骤。所述映射文件包括Hibernate映射文件和Hibernate配置文件。所述模型关联信息包括单键实体类;所述映射规则包括类映射到表;主键属性映射为表的主键;非主键属性映射为表的字段。或者所述模型关联信息包括复合主键实体类;所述映射规则包括类映射到表;主键属性映射为表的主键,主键类所有的属性映射到表的复合主键字段;非主键属性映射为表的字段。所述模型关联信息包括实体类型和值类型,且所述实体类与值类型为一对一关系;所述映射规则为实体类映射到表;实体主键属性映射为表的主键;值类型的多个属性映射到实体类对应的表的多个字段;非主键属性映射为表的字段;或者所述映射规则为实体类和值类型分别映射到两张独立的表;值类型对应的表中增加实体类的主键字段,作为值类型的主键和外键。所述模型关联信息包括实体类型和值类型,且所述实体类与值类型为一对多关系;所述映射规则为实体类和值类型分别映射到两张独立的表;值类型对应的表中增加实体类的主键字段,作为值类型的外键,且值类型有单独的主键字段。所述模型关联信息包括属性类型;所述属性类型为基本类型或基于扩展的基本类型时,所述映射规则包括属性类型映射到数据库的字段;和/或所述属性类型为结构类型时,所述映射规则包括结构类型与其所述的类映射到同一张表。所述模型关联信息包括关联类与被关联类单向一对一关联关系和/或关联类和被关联类双向一对多关联关系。所述映射规则为关联类映射到表;关联类和被关联类的属性映射到表的字段。或者所述映射规则为关联类和被关联类分别映射到两张表;被关联类对应的表使用关联类的主键作为自己的主键和外键字段。或者所述映射规则为关联类和被关联类分别映射到两张表;被关联类对应的表使用关联类的主键作为自己的外键字段,并使用单独的主键字段。所述模型关联信息包括关联类和被关联类单向一对多关联关系,和/或关联类和被关联类双向一对多关联关系,和/或关联类和被关联类双向多对一关联关系。所述映射规则为关联类和被关联类分别映射到两张表;被关联类对应的表使用关联类的主键作为自己的外键字段。或者所述映射规则为关联类和被关联类分别映射到两张表;创建一个新的连接表,表中的字段包含关联类和被关联类的主键字段。或者所述映射规则为关联类和被关联类分别映射到两张表;创建一个新的连接表,表中的字段包含关联类和被关联类的主键字段,同时关联表有自己的主键字段。所述模型关联信息包括关联类和被关联类单向多对一关联关系。所述映射规则为关联类和被关联类分别映射到两张表;关联类使用被关联类的主键属性作为外键字段。或者所述映射规则为关联类和被关联类分别映射到两张表;创建一个新的连接表,表中的字段包含关联类和被关联类的主键字段。或者所述映射规则为关联类和被关联类分别映射到两张表;创建一个新的连接表,表中的字段包含关联类和被关联类的主键字段,连接表同时有自己的主键字段。所述模型关联信息包括关联类和被关联类多对多关联关系和/或关联类和被关联类双向多对多关联关系。所述映射规则为关联类和被关联类分别映射到两张表,属性对象映射到一张连接表;创建一个新的连接表,该新连接表中的字段只包含关联类和被关联类的主键字段,并且新连接表的某个字段和前面的主键字段联合起来作为主键。所述模型关联信息包括父类与子类的继承关系。所述映射规则为每个层次的类的所有属性叠加到一张表中;父类使用类型字段表示自己所在的层次;所有的子类层次对应的表共用父类的主键作为外键唯一标识一条记录。或者所述映射规则本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种自动建立关系模型的集成开发环境IDE系统,其特征在于,该系统包括模型信息采集引擎,用于从对象模型采集得到模型关联信息,并将所述模型关联信息发送给自动转换引擎;自动转换引擎,用于根据预设的映射规则定义文件、所述模型关联信息和对象模型,生成关系模型。2.根据权利要求1所述的系统,其特征在于,所述自动转换引擎进一步用于生成映射文件。3.根据权利要求1所述的系统,其特征在于,所述自动转换引擎包括第一自动转换引擎,用于根据预设的映射规则定义文件、所述模型关联信息和对象模型,生成映射文件;模型输出工具,用于根据所述映射文件生成关系模型。4.一种自动建立关系模型的方法,其特征在于,该方法包括以下步骤设置对象模型到关系模型的映射规则,以及从对象模型中采集模型关联信息;根据所述映射规则和模型关联信息以及对象模型,自动生成关系模型。5.根据权利要求4所述的方法,其特征在于,所述从对象模型中采集模型关联信息的步骤为遍历对象模型,并获取模型关联信息。6.根据权利要求4所述的方法,其特征在于,所述根据映射规则和模型关联信息以及对象模型自动生成关系模型的步骤包括根据所述映射规则和模型关联信息以及对象模型生成映射文件;根据映射文件生成关系模型。7.根据权利要求4所述的方法,其特征在于,所述根据映射规则和模型关联信息以及对象模型自动生成关系模型的步骤进一步包括生成映射文件的步骤。8.根据权利要求6或7所述的方法,其特征在于,所述映射文件包括Hibernate映射文件和Hibernate配置文件。9.根据权利要求4所述的方法,其特征在于,所述模型关联信息包括单键实体类;所述映射规则包括类映射到表;主键属性映射为表的主键;非主键属性映射为表的字段;或者所述模型关联信息包括复合主键实体类;所述映射规则包括类映射到表;主键属性映射为表的主键,主键类所有的属性映射到表的复合主键字段;非主键属性映射为表的字段。10.根据权利要求4所述的方法,其特征在于,所述模型关联信息包括实体类型和值类型,且所述实体类与值类型为一对一关系;所述映射规则为实体类映射到表;实体主键属性映射为表的主键;值类型的多个属性映射到实体类对应的表的多个字段;非主键属性映射为表的字段;或者所述映射规则为实体类和值类型分别映射到两张独立的表;值类型对应的表中增加实体类的主键字段,作为值类型的主键和外键。11.根据权利要求4所述的方法,其特征在于,所述模型关联信息包括实体类型和值类型,且所述实体类与值类型为一对多关系;所述映射规则为实体类和值类型分别映射到两张独立的表;值类型对应的表中增加实体类的主键字段,作为值类型的外键,且值类型有单独的主键字段。12.根据权利要求4所述的方法,其特征在于,所述模型关联信息包括属性类型;所述属性类型为基本类型或基于扩展的基本类型时,所述映射规则包括属性类型映射到数据库的字段;和/或所述属性类型为结构类型时,所述映射规则包括结构类型与其所述的类映射到同一张表。13.根据权利要求4所述的方法,其特征在于,所述模型关联信息包括关联类与被关联类单向一对一关联关系和/或关联类和被关联类双向一对多关联关系;所述映射规则为关联类映射到表;关联类和被关联类的属性映射到...
【专利技术属性】
技术研发人员:孟庆光,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。