Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Talend-从Java应用程序中的ThasimPort组件读取值-如何?_Java_Mysql_Talend - Fatal编程技术网

Talend-从Java应用程序中的ThasimPort组件读取值-如何?

Talend-从Java应用程序中的ThasimPort组件读取值-如何?,java,mysql,talend,Java,Mysql,Talend,我是Talend的新手,目前正在写我的第一份Talend工作 我正在做以下工作: 查询一个MySQL db表SELECT*FROM docs,其中DocName='XYZ'将使用tHashInput返回少量记录 使用tHashOutput将这些记录存储在内存中 使用tHashInput从内存中获取这些记录 并使用tLogRow组件记录记录 我正在从Java应用程序运行此Talend作业,如下所示: FetchDocuments mySQLConnectorJob = new FetchDocum

我是Talend的新手,目前正在写我的第一份Talend工作

我正在做以下工作:

查询一个MySQL db表SELECT*FROM docs,其中DocName='XYZ'将使用tHashInput返回少量记录 使用tHashOutput将这些记录存储在内存中 使用tHashInput从内存中获取这些记录 并使用tLogRow组件记录记录 我正在从Java应用程序运行此Talend作业,如下所示:

FetchDocuments mySQLConnectorJob = new FetchDocuments();
mySQLConnectorJob.runJob(new String[]{});
最后,我想在Java应用程序中以某种方式获取这些记录,例如使用某种方法:

mySQLConnectorJob.getResultSet();
我知道我们可以使用tFileOutputDelimited组件将这些记录存储在CSV文件中,然后在Java应用程序中解析该文件以获取记录,但如果可能的话,我希望避免使用该文件

我的问题是:

您知道如何在Java应用程序中获取记录并完成此任务吗? 若我的泰伦德工作设计不好,你们能给我一些建议,如何改变它,以能够完成任务? 谢谢, 尼纳德

您可以使用tJavaFlex或tJava将记录存储在mySQLConnectorJob的实例对象中。然后从实例对象获取这些值。
我找到了将tHashInput组件中的值存储到globalMap对象并在Java应用程序中获取这些值的方法。 所以在tHashInput组件之后,我放置了tJavaRow组件。在tJavaRow组件中,我创建了一个新的HashMap,并在该映射中放置了db表记录。之后,我将HashMap实例放在同一tJavaRow组件中的globalMap中

//Instantiate metadata Map

java.util.Map<java.lang.String, java.lang.Object> docMetadata = 
    new java.util.HashMap<java.lang.String, java.lang.Object>();

//Fetch document metadata and put it in the Map

docMetadata.put("documentID", metadata1.DocumentID);
docMetadata.put("documentName", metadata1.DocumentName);
docMetadata.put("creator", metadata1.Creator);

//Put metadata in global Map

globalMap.put("docMetadata", docMetadata);

metadata1是tHashInput组件到tJava组件的连接名称。当我在Java应用程序中开始工作时,我使用Java反射获取了globalMap。

Hi@Chandra Prakash,感谢您的建议。我已经看过了作业的代码,这个查询记录集存储在rs_tMysqlInput_1变量中,该变量在tMysqlInput_1处理方法的范围内,因此我不知道/不知道如何使用tJava或tJavaFlex将其放入其他对象中,但我也在考虑这个方向。如果你知道我们如何做到这一点,你能给我一些小例子,如何做到这一点?