一种基于Java的数据库与实体类自动映射算法的制作方法

文档序号:11707764阅读:1171来源:国知局

本发明涉及自动映射技术领域,具体为一种基于java的数据库与实体类自动映射算法。



背景技术:

mybatics框架在配置数据库与实体类映射关系的时候,采取的是手动配置xml文件来进行配置数据库与实体类的映射关系。采用手动配置映射关系的方式会占用很多时间,费时又费力,为此,我们提出一种基于java的数据库与实体类自动映射算法。



技术实现要素:

本发明的目的在于提供一种基于java的数据库与实体类自动映射算法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于java的数据库与实体类自动映射算法,其特征在于,包括以下步骤:

s1:通过结果集,调用getmetadata获取元数据,再用获取的元数据调用getcolumnlabel方法来获取所有的列名;

s2:利用java的发射机制获取实体类的所有字段的名字以及类型;

s3:判断实体类的每个字段类型是否是内聚的其他实体类的类型,分如下两种情况:

1)不是内聚的字段,则直接采用字符串相似度匹配算法,即levenshtein算法,将该字段名与数据库列名一一进行匹配,并找到最相似的数据库表的列名,再使用结果集调用getobject方法来获取数据,再利用java反射机制将这个数据赋值给实体类对应的字段;

2)是内聚的字段,则采用递归的方式,按照步骤s2采用java的反射机制来获取内聚字段的类型所对应的实体类的所有字段的名字以及类型,再按照第三步一直递归下去。

优选的,所述步骤s3中1)的字符串相似度算法如下:

优选的,所述步骤s3中1)的数据库表列名的获取方法,如下所示:

与现有技术相比,本发明的有益效果是:本基于java的数据库与实体类自动映射算法,实体类的字段取名不需要严格的与数据库表的列名一致,只需要相似即可,即使实体类里内聚了另一个实体类也能匹配到。与手动配置映射关系相比,自动配置映射省去了程序员大量的时间与精力,提高了编程效率。采用自动匹配的方式来自动配置映射,并且采用字符串相似度算法来匹配字段,实体类的字段名无需与数据库表的列名一致,能够匹配具有内聚关系的实体类。

附图说明

图1为本发明的流程示意图。

具体实施方式

下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种技术方案:

一种基于java的数据库与实体类自动映射算法,包括以下步骤:

s1:通过结果集,调用getmetadata获取元数据,再用获取的元数据调用getcolumnlabel方法来获取所有的列名;

s2:利用java的发射机制获取实体类的所有字段的名字以及类型;

s3:判断实体类的每个字段类型是否是内聚的其他实体类的类型,分如下两种情况:

1)不是内聚的字段,则直接采用字符串相似度匹配算法,即levenshtein算法,将该字段名与数据库列名一一进行匹配,并找到最相似的数据库表的列名,再使用结果集调用getobject方法来获取数据,再利用java反射机制将这个数据赋值给实体类对应的字段;

2)是内聚的字段,则采用递归的方式,按照步骤s2采用java的反射机制来获取内聚字段的类型所对应的实体类的所有字段的名字以及类型,再按照第三步一直递归下去,如图1所示。

判断字段是否是内聚的实体类算法:

具体的,步骤s3中1)的字符串相似度算法如下:

具体的,步骤s3中1)的数据库表列名的获取方法,如下所示:

本基于java的数据库与实体类自动映射算法,实体类的字段取名不需要严格的与数据库表的列名一致,只需要相似即可,即使实体类里内聚了另一个实体类也能匹配到。与手动配置映射关系相比,自动配置映射省去了程序员大量的时间与精力,提高了编程效率。采用自动匹配的方式来自动配置映射,并且采用字符串相似度算法来匹配字段,实体类的字段名无需与数据库表的列名一致,能够匹配具有内聚关系的实体类。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1