【发布时间】:2023-04-02 09:16:01
【问题描述】:
目标是创建一个 groovy 脚本,该脚本将从数据库中读取并导出到 csv 文件。我正在使用 apache commons csv writer。我一直在处理这个javacode geeks - apache commons tutorial..
这行得通 我放在这里是为了帮助解释我想要实现的目标。
fileWriter = new FileWriter(fileName);
csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);
csvFilePrinter.printRecord(FILE_HEADER);
//Write a new student object list to the CSV file
for (Student student : students) {
List studentDataRecord = new ArrayList();
studentDataRecord.add(String.valueOf(student.getId()));
studentDataRecord.add(student.getFirstName());
studentDataRecord.add(student.getLastName());
csvFilePrinter.printRecord(studentDataRecord);
}
我想在 groovy/java 中做什么。
我创建了一个调用数据库的 groovy 脚本 ok。我可以让它迭代和循环并打印行。但是我不想手动编写所有 'student.getFirstName' student.getLastName 等调用。如果我以后修改查询,它会做更多的工作——我只想将它直接导出到只修改查询的 csv。
到目前为止,我有这样的东西。我不确定语法等。
#!/usr/bin/env groovy
import groovy.sql.Sql
import org.apache.commons.csv.CSVFormat
CSVFormat csvFileFormat = CSVFormat.DEFAULT.withRecordSeparator(NEW_LINE_SEPARATOR);
fileWriter = new FileWriter(fileName);
csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);
csvFilePrinter.printRecord(FILE_HEADER);
sql.eachRow("Select field1, field2, field3, etc FROM Student") {
for( keyIndex k ){
List studentDataRecord = new ArrayList();
studentDataRecord.add(k.value)
}
csvFilePrinter.printRecord(studentDataRecord);
}
【问题讨论】:
标签: java arraylist groovy export-to-csv