У меня есть 6 столбцов в таблице. У меня есть запрос select, который выбирает некоторые записи из таблицы. В то время как итерация набора результатов, им с помощью следующей логики для извлечения значений в столбцах:Любой лучший подход, а не result.getString() при повторении набора результатов в java
Statement select = conn.createStatement();
ResultSet result = select.executeQuery
("SELECT * FROM D724933.ECOCHECKS WHERE ECO = '"+localeco+"' AND CHK_TOOL = '"+checknames[i]+"'");
while(result.next()) { // process results one row at a time
String eco = result.getString(1);
mapp2.put("ECO", eco);
String chktool = result.getString(2);
mapp2.put("CHECK_TOOL", chktool);
String lastchktime = result.getString(3);
mapp2.put("LAST_CHECK_TIME", lastchktime);
String status = result.getString(4);
mapp2.put("STATUS", status);
String statcmts = result.getString(5);
mapp2.put("STATUS_COMMENTS", statcmts);
String details = result.getString(6);
mapp2.put("DETAILS_FILE", details);
}
У меня есть 2 вопроса здесь: 1. Есть ли лучший подход, а не использовать result.getString()? ?? 2. Скажем, еще один столбец добавляется к таблице в более поздней точке. Есть ли способ, которым мой код обрабатывает это новое добавление без внесения изменений в код в этот момент времени
@jtahlborn Поскольку я извлекаю все столбцы и извлекаю их по индексу быстрее, чем поиск по имени. Если вам это нравится, вы можете использовать 'rs.getString (rsmd.getColumnName (i))' - но почему? Помните, что имена столбцов недоступны заранее, мне нужно получить их во время выполнения. –
Кто бы ни старался объяснить, почему? –
Алекс G был совершенно прав о целом ответе. Я не вижу в его ответе ничего, что могло бы случиться. Я принимаю его ответ как правильное решение для моего вопроса –