使用 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框架的原始碼,希望大神不要吐槽,單純的想法實現 )
我還給做成這樣呼叫
謝謝,再見!