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/.