这似乎是一个微不足道的问题,但我使用的是jdbctemplate,需要将数据导出到excel文件。不确定我是否可以使用CSVWriter,因为jdbctemplate没有返回结果集的方法,我需要标题。我不想硬编码代码中的标题,因为它们会改变。我只是想从db(以及标题)转储数据。
答案 0 :(得分:0)
要访问ResultSet的元数据,您可以使用RowMapper,RowCallbackHandler或ResultSetExtractor。要为Excel编写文件,可以使用Apache POI。例如:
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("sheetname");
jdbcTemplate.query("select * from xyz", new RowCallbackHandler() {
public void processRow(ResultSet rs) throws SQLException {
String columnName = rs.getMetaData().getColumnName(column);
String columnValue = rs.getString(column);
Row row = sheet.createRow(sheetRow);
row.createCell(column).setCellValue(columnValue);
}
});
try (FileOutputStream out = new FileOutputStream(new File("export.xlsx"))) {
workbook.write(out);
}
还要检查这些接口的实现类。