将数据库中的结果列表写入 Java 中的 CSV 文件
Write ResultList from DB into a CSV file in Java
我需要将我的 query.getResultList()
写入 .CSV
文件。
我通过这个调用查询:
final Query q = em.createNamedQuery("getalljobs");
final List<Job> joblist = q.getResultList();
而 Namequery 只做 SELECT * FROM TABLE
,query.getResultList()
的结果如下所示:
[id;name, id;name, ... ]
我不会使用 OpenCSV。
CSV 文件需要 headers.
解决方案
在文件中用 StringBuidler.append 逐行写入。为此,在每行之后添加逗号和新行。
你可以使用像
这样的东西
Query q = em.createNamedQuery("getalljobs");
List<Job> jobList = q.getResultList();
String csvHeader = getHeader();
try (PrintWriter fw = new PrintWriter(new FileWriter("output.csv"))) {
fw.println(csvHeader);
for(String line : jobList){
fw.println(line);
}
}
我需要将我的 query.getResultList()
写入 .CSV
文件。
我通过这个调用查询:
final Query q = em.createNamedQuery("getalljobs");
final List<Job> joblist = q.getResultList();
而 Namequery 只做 SELECT * FROM TABLE
,query.getResultList()
的结果如下所示:
[id;name, id;name, ... ]
我不会使用 OpenCSV。
CSV 文件需要 headers.
解决方案
在文件中用 StringBuidler.append 逐行写入。为此,在每行之后添加逗号和新行。
你可以使用像
这样的东西Query q = em.createNamedQuery("getalljobs");
List<Job> jobList = q.getResultList();
String csvHeader = getHeader();
try (PrintWriter fw = new PrintWriter(new FileWriter("output.csv"))) {
fw.println(csvHeader);
for(String line : jobList){
fw.println(line);
}
}