Вы используете необработанные типы, и ваша IDE или компилятор выдают вам массу предупреждений об этом. Вы должны обратить на них внимание. Поскольку вы этого не сделали, вы смогли написать код, который назначает список, содержащий карты (каждая карта, представляющая один возвращенный результат в БД, отображает имена столбцов в значения в строке) ... в переменную типа List<String>
.
Эта модель перевода строки БД на карту - плохая идея. Есть много хороших библиотек для взаимодействия с БД. Например, JDBI прост для понимания, имеет более продуманный API для доступа к результатам. Он даже может отображать результаты на типы данных Java.
Если вам нужно использовать вставленную вами модель, для начала добавьте универсальные шаблоны везде, чтобы компилятор отметил это как ошибку времени компиляции. По крайней мере, сделать это List<Map<String, Object>>
.
Позвольте мне еще раз повторить, что переключение вещей на JDBI - намного лучший путь вперед, но в интересах ответа на прямо поставленный вопрос, как только вы добавили обобщения и исправили типы переменных, вы можете сделать это:
List<Map<String, Object>> data = getResultSet(syndicatorName);
for (int rowIdx = 0; rowIdx < data.size(); i++) {
Map<String, Object> row = data.get(rowIdx);
for (Map.Entry<String, Object> cell : row.entrySet()) {
System.out.printf("Row %d cell %s: %s\n", rowIdx, cell.getKey(), cell.getValue());
}
}
Обратите внимание, что ваши значения ячеек здесь «Объект». Вам нужно привести их к тому типу данных, который вы знаете. Это не идиоматическая Java, но это невозможно исправить без полной перестройки метода getResultSet. Опять же ... JDBI или подобные библиотеки - это то, что вы действительно хотите здесь.