【发布时间】:2019-04-24 16:43:47
【问题描述】:
我想将通过 JDBC 触发的 SQL 查询的结果导出到文件中;然后在稍后的某个时间导入该结果。
我目前正在通过Spring 的NamedParameterJdbcTemplate 查询数据库来做到这一点,它返回一个我可以迭代的SqlRowSet。在每次迭代中,我提取所需的字段并将结果转储到 CSV 文件中,使用 PrintWriter。
final SqlRowSet rs = namedJdbcTemplate.queryForRowSet(sql,params);
while (rs.next()) {
问题是当我读回文件时,它们都是Strings,我需要将它们转换为正确的类型,例如Integer、String、Date 等。
while (line != null) {
String[] csvLine = line.split(";");
Object[] params = new Object[14];
params[0] = csvLine[0];
params[1] = csvLine[1];
params[2] = Integer.parseInt(csvLine[2]);
params[3] = csvLine[3];
params[4] = csvLine[4];
params[5] = Integer.parseInt(csvLine[5]);
params[6] = Integer.parseInt(csvLine[6]);
params[7] = Long.parseLong(csvLine[7]);
params[8] = formatter.parse(csvLine[8]);
params[9] = Integer.parseInt(csvLine[9]);
params[10] = Double.parseDouble(csvLine[10]);
params[11] = Double.parseDouble(csvLine[11]);
params[12] = Double.parseDouble(csvLine[12]);
params[13] = Double.parseDouble(csvLine[13]);
batchParams.add(params);
line = reader.readLine();
}
有没有更好的方法可以将这个SqlRowSet 导出到一个文件中,以便于以后的导入过程;某种方式来存储架构以便更轻松地插入数据库?
【问题讨论】:
标签: java spring jdbc design-patterns refactoring