一种实现HBase数据与Java域对象映射的方法和装置制造方法

文档序号:6622870阅读:437来源:国知局
一种实现HBase数据与Java域对象映射的方法和装置制造方法
【专利摘要】本发明提供一种实现HBase数据与Java域对象映射的方法和装置,有助于提高开发效率和简化维护并且保障应用程序代码更新的准确性。本发明的一种实现HBase数据与Java域对象映射的方法包括:在Java域对象中添加注解,所述注解记录的内容包括所述Java域对象对应的HBase表的名称、所述Java域对象的每个属性对应的所述HBase表的列簇及其中的列的名称、所述Java域对象中的主键生成策略;遍历所述Java域对象的每个属性,在遍历到的属性有注解的情况下,获取该注解记录的内容,以及从所述Java域对象中提取该属性的值然后填入所述注解中记录的该属性对应的HBase表的列簇中的列中。
【专利说明】—种实现HBase数据与Java域对象映射的方法和装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,特别地涉及一种实现HBase数据与Java域对象映射的方法和装置。

【背景技术】
[0002]在大数据积累的今天,很多应用在进行相关实现的过程中,都会用到HBase来存储大量的数据,因为其能提供相关高效的实时查询需求。但HBase作为NoSQL,本身是一种无结构化的,且自身提供的API并不包含将其数据翻译为Java域对象,而需要使用者通过硬编码的方式将其进行映射,这样对于不同的表,需要写大量的重复代码来完成不同表的查询等需求。
[0003]同时,随着应用的不断演进,HBase的数据列或者簇很可能进行添加、删除,对于这种变化,就需要程序员在程序中重新进行相应的编码处理。例如用来记录表1中的内容的HBase 表,表为 person,列族为 info,其下列为 info:name, info:age, info:address,应用程序需要读取表中的每行记录,并将每一行记录转换为Java域对象(Person, java)。或者在插入的时候,应用程序需将每一个Java域对象(Person, java)转化为HBase的Put对象。
[0004]表1
[0005]

【权利要求】
1.一种实现HBase数据与Java域对象映射的方法,其特征在于,包括: 在Java域对象中添加注解,所述注解记录的内容包括所述Java域对象对应的HBase表的名称、所述Java域对象的每个属性对应的所述HBase表的列簇及其中的列的名称、所述Java域对象中的主键生成策略; 遍历所述Java域对象的每个属性,在遍历到的属性有注解的情况下,获取该注解记录的内容,以及从所述Java域对象中提取该属性的值然后填入所述注解中记录的该属性对应的HBase表的列簇中的列中。
2.根据权利要求1所述的方法,其特征在于,所述获取该注解记录的内容的步骤包括:使用Java反射机制得到该注解记录的内容。
3.根据权利要求1或2所述的方法,其特征在于,所述Java域对象对应的HBase表的名称记录在所述Java域对象的类头的注解中,所述Java域对象的每个属性对应的所述HBase表的列簇及其中的列的名称分别记录在各个属性的注解中。
4.一种实现HBase数据与Java域对象映射的方法,其特征在于,包括: 在Java域对象中添加注解,所述注解记录的内容包括所述Java域对象对应的HBase表的名称、所述Java域对象的每个属性对应的所述HBase表的列簇及其中的列的名称、所述Java域对象中的主键生成策略; 遍历所述Java域对象的每个属性,在遍历到的属性有注解的情况下,获取该注解记录的内容,以及从HBase表的列中提取数据然后保存到所述注解中记录的该列对应的所述Java域对象的属性中。
5.根据权利要求4所述的方法,其特征在于,所述获取该注解记录的内容的步骤包括:使用Java反射机制得到该注解记录的内容。
6.根据权利要求4或5所述的方法,其特征在于,所述Java域对象对应的HBase表的名称记录在所述Java域对象的类头的注解中,所述Java域对象的每个属性对应的所述HBase表的列簇及其中的列的名称分别记录在各个属性的注解中。
7.一种实现HBase数据与Java域对象映射的装置,其特征在于,包括: 保存模块,用于保存Java域对象,该Java域对象中添加有注解,所述注解记录的内容包括所述Java域对象对应的HBase表的名称、所述Java域对象的每个属性对应的所述HBase表的列簇及其中的列的名称、所述Java域对象中的主键生成策略; 注解获取模块,用于遍历所述Java域对象的每个属性,在遍历到的属性有注解的情况下,获取该注解记录的内容; HBase表写入模块,用于从所述Java域对象中提取所述注解获取模块遍历到的属性的值然后填入该属性的注解中记录的该属性对应的HBase表的列簇中的列中。
8.根据权利要求7所述的装置,其特征在于,所述注解获取模块还用于使用Java反射机制得到注解记录的内容。
9.一种实现HBase数据与Java域对象映射的装置,其特征在于,包括: 存储模块,用于存储Java域对象,该Java域对象中添加有注解,所述注解记录的内容包括所述Java域对象对应的HBase表的名称、所述Java域对象的每个属性对应的所述HBase表的列簇及其中的列的名称、所述Java域对象中的主键生成策略; 获取模块,用于遍历所述Java域对象的每个属性,在遍历到的属性有注解的情况下,获取该注解记录的内容; 属性值写入模块,用于从HBase表的列中提取数据然后保存到所述注解中记录的该列对应的所述Java域对象的属性中。
10.根据权利要求9所述的装置,其特征在于,所述获取模块还用于使用Java反射机制得到注解记录的内容。
【文档编号】G06F17/30GK104182484SQ201410386910
【公开日】2014年12月3日 申请日期:2014年8月7日 优先权日:2014年8月7日
【发明者】王文豹 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1