Я хочу экспортировать результаты запроса SQL, запущенного через JDBC, в файл;и затем импортировать этот результат, в некоторый момент позже.
В настоящее время я делаю это, запрашивая базу данных через NamedParameterJdbcTemplate
из Spring
, который возвращает SqlRowSet
, который я могу повторить.На каждой итерации я извлекаю нужные поля и выгружаю результат в файл CSV
, используя PrintWriter
.
final SqlRowSet rs = namedJdbcTemplate.queryForRowSet(sql,params);
while (rs.next()) {
. Проблема в том, что когда я читаю файл, они все String
s и мне нужно привести их к соответствующим типам, например 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
вфайл, чтобы облегчить процесс импорта позже;какой-то способ сохранить схему для более легкой вставки в БД?