1. 程式人生 > >使用 JDBC 連線 hive 查詢後把資料使用java反射注入到物件

使用 JDBC 連線 hive 查詢後把資料使用java反射注入到物件

要求 : 學習hive有幾周了,最近一直使用javaJDBC的方式連線hive進行操作,目前我還不知道有沒有第三方的框架能做哈(剛玩不清楚),今天發現使用JDBC查詢出來的結果 只能根據 列名 或者 下標 獲取值,這種方式感覺太不靈活了,就想按照mybatis/hibernate 這樣的 ORM 框架 可以把資料自動注入封裝到 類中

結果 : 通過一下午的實驗,使用JAVA反射的方式可以把資料封裝到指定物件中
現在開始:
第一步 : 建立自定義註解( 用於獲取 類-> 表名 , 屬性->列名 的對映 ):
 1):建立用於表的註解: @Retention(RetentionPolicy.RUNTIME) // 註解會在class位元組碼檔案中存在,在執行時可以通過反射獲取到  
@Target(value={java.lang.annotation.ElementType.TYPE})//定義註解的作用目標**作用範圍欄位、列舉的常量/方法  
@Documented//說明該註解將被包含在javadoc中 
public @interface HiveTable {
String name() default "default";
}


2):建立用於屬性的註解 :  @Retention(RetentionPolicy.RUNTIME) // 註解會在class位元組碼檔案中存在,在執行時可以通過反射獲取到  
@Target(value={java.lang.annotation.ElementType.FIELD})//定義註解的作用目標**作用範圍欄位、列舉的常量/方法  
@Documented//說明該註解將被包含在javadoc中
public @interface HiveFile {
String name() default "default";
}

第二步 : 創建於Hive表對應的實體類 

第三步 : 使用java 反射機制開始注入

1 ) 連線hive 

 2 ) 開始


執行結果 :  

至此 : 想法實現了,希望有興趣的能繼續優化( ps:沒看過ORM框架的原始碼,希望大神不要吐槽,單純的想法實現 )

我還給做成這樣呼叫


謝謝,再見!