我有一个弹出批处理文件,它从数据库中提取数据并将其写入.CSV文件。
我想添加作为文件标题提取的列的名称,而不对文件进行硬编码。
我可以在得到结果时写入标题,还是有其他解决方案?
由于
答案 0 :(得分:0)
fileItemWriter.setHeaderCallback(new FlatFileHeaderCallback() {
public void writeHeader(Writer writer) throws IOException {
writer.write(Arrays.toString(names));
}
});
[names]可以使用您为rowMapper使用的列名创建的域类的反射来获取,如下所示:
private String[] reflectFields() throws ClassNotFoundException {
Class job = Class.forName("DomainClassName");
Field[] fields = FieldUtils.getAllFields(job);
names = new String[fields.length];
for(int i=0; i<fields.length; i++){
names[i] = fields[i].getName();
}
return names;
}