Sqoop - 代码生成器
本章描述了“codegen”工具的重要性。从面向对象应用程序的角度来看,每个数据库表都有一个 DAO 类,该类包含用于初始化对象的“getter”和“setter”方法。该工具(-codegen)自动生成 DAO 类。
它基于Table Schema 结构在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/编译/9a300a1f94899df4a9b10f9935ed9f91/。