3

我使用 Netbeans 在 Java 中创建了程序,该程序从数据库中下载数据,然后使用 OpenCSV 将其保存到 CSV 文件中。但是由于某种原因,数据库的第一行被跳过了。

while (rs.next()){

CSVWriter writer = new CSVWriter(new FileWriter("C:\\test2.csv"), ',');          
writer.writeAll(rs,false);
writer.flush();
writer.close();
}

实际数据库数据:

1 Mark BMW
2 John Audi
3 Nick Fiat

写入 CSV 文件的数据:

2 John Audi
3 Nick Fiat
4

2 回答 2

2

我认为调用rs.next()是在结果集中推进一行,然后调用 writeAll 会在推进之后写入所有内容。尝试取出while(rs.next)代码周围的循环块,看看是否有效

于 2013-01-04T17:52:11.480 回答
0

您应该再次检查文档。它清楚地表明您不需要while循环。您只需将结果集扔给它并定义是否应返回标头。

writer.writeAll(yourResultSet, true);

在上述情况下,标头将包含在生成的 csv 文件中

于 2014-07-14T13:53:33.493 回答