Sqoop程式碼生成


本章介紹“程式碼生成”工具的重要性。從物件導向應用程式的觀點來看,每一個資料庫表具有包含“setter”和“getter”的方法來初始化DAO類物件。此工具(-codegen)自動生成DAO類。

它產生的DAO類在Java中是基於表的模式結構。在Java定義範例作為匯入過程的一部分。這個工具的主要用途是檢查是否遺漏了Java程式碼。如果是這樣,這將建立Java欄位之間的預設定界符的新版本。

語法

以下是Sqoop程式碼生成命令的語法。

$ sqoop codegen (generic-args) (codegen-args) 
$ sqoop-codegen (generic-args) (codegen-args)

範例

讓我們以USERDB資料庫中的表emp來生成Java程式碼為例。

下面的命令用來執行該給定的例子。

$ sqoop codegen \
--connect jdbc:mysql://localhost/userdb \
--username root \ 
--table emp

如果命令成功執行,那麼它就會產生在終端上下面的輸出。

14/12/23 02:34:40 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5
14/12/23 02:34:41 INFO tool.CodeGenTool: Beginning code generation
……………….
14/12/23 02:34:42 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /usr/local/hadoop
Note: /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

14/12/23 02:34:47 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.jar

驗證

讓我們來看看輸出。路徑是emp表的Java程式碼生成並儲存的位置。驗證使用下列命令在該位置中的檔案。

$ cd /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/
$ ls
emp.class
emp.jar
emp.java

如果想驗證深入開發,在USERDB資料庫比較表emp和emp.java在以下目錄

/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/.