【问题标题】:Java - Iterate through a ResultSet till find the correct fileJava - 遍历 ResultSet 直到找到正确的文件
【发布时间】:2021-03-01 20:35:51
【问题描述】:

我有包含数据的文件(file1_01032021、file2_02032021)和相应的信息文件(info1_01032020、info2_02032020)。 file1 属于 info1,file2 属于 info2。它们到达 hdfs 并且文件名在文件到达时记录在数据库中。在信息文件中,指向数据文件的名称。 所以 info1 有内容例如:

"blabla" : "blabla"
"dataFile" : "info1_01032020"

我创建了一个变量 r,它是该表中数据的 ResultSet,其中文件的类型是信息。 表格如下:

date      | filePath | type
01032020  | info1    | information
02032020  | info2    | information
01032021  | file1    | data
02032021  | file2    | data

在 ResultSet (r) 中存储以下行:

01032020  | info1    | information
02032020  | info2    | information

对我来说,“filePath”栏很有趣。我必须为每个数据文件找到相应的信息文件名。 我需要某种迭代器通过这个 ResultSet 并查看文件并查看包含数据的文件属于哪个文件。我有以下代码:

if (r.next())    
informationFile = r.getString("filePath");

但它只取最后加载的文件,不检查它属于哪个数据文件。

谁能用一些示例代码帮助我进行迭代?

【问题讨论】:

  • 你需要某种循环。您需要使用 while(r.next()) 之类的东西来遍历结果,而不是 if(r.next()),在这种情况下,您需要处理 while 循环的每次迭代。
  • 附带说明,我建议将信息文件中的信息存储到数据库的列中。对指向需要加载和解析的文件的行进行迭代是非常耗费资源的。除此之外,@Brendan Lesniak 对 while 循环的看法是正确的 :)
  • @RandomCoder_01,甚至在初次阅读时都没有注意到。很好的收获。

标签: java iteration resultset


【解决方案1】:

如果我理解正确,你可以这样做:

while (r.next())   { 
  informationFile = r.getString("filePath");
  String file = "file"+informationFile.substring(4);
  readFile(file); // You need to create this method
}

【讨论】:

    猜你喜欢
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    相关资源
    最近更新 更多