目標是創建一個groovy腳本,該腳本將從數據庫中讀取並導出到csv文件。我正在使用apache commons csv編寫器。我一直在使用這個javacode geeks - apache commons tutorial ..java groovy分割數組用於csv輸出
這工作 我已經把這裏幫忙解釋一下,我試圖實現。
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腳本調用數據庫好。我可以使其迭代並循環,並打印行。不過,我不想手動編寫所有'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);
}