Sqoop - Codegen

本章介绍了"codegen"工具的重要性。从面向对象应用程序的角度来看,每个数据库表都有一个 DAO 类,其中包含用于初始化对象的"getter"和"setter"方法。此工具 (-codegen) 会自动生成 DAO 类。

它基于表模式结构在 Java 中生成 DAO 类。Java 定义作为导入过程的一部分进行实例化。此工具的主要用途是检查 Java 是否丢失了 Java 代码。如果是,它将创建一个新版本的 Java,字段之间使用默认分隔符。

语法

以下是 Sqoop codegen 命令的语法。

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