@ClaraOswald

JDBC, как забрать все записи в виде одного объекта?

JDBC, как забрать все записи в виде одного объекта?
допустим я забираю все что мне нужно из бд вот так (query это переменная с SQL запросом)
ResultSet rs = st.executeQuery(query);
но выстраивать каждый раз вот такую конструкцию я не хочу
while (rs.next()) {
            System.out.println(rs.getString("id"));
            System.out.println(rs.getString("name"));
        }

ибо неизвестно сколько раз они мне понадобятся.
можно их забрать к примеру в виде какого то массива объектов или в любой другой более удоба-варимой форме ?
P.S. если что не так, прошу фикалиями не закидывать, ибо с java-ой только знакомлюсь
  • Вопрос задан
  • 280 просмотров
Решения вопроса 1
@coden55
Сделал себе таким образом:
private ArrayList<HashMap<String, Object>> resultSetToArrayList(ResultSet rs) throws SQLException {
        ResultSetMetaData md = rs.getMetaData();
        int columns = md.getColumnCount();
        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
        while (rs.next()) {
            HashMap<String, Object> row = new HashMap<>(columns);
            for (int i = 1; i <= columns; ++i) {
                row.put(md.getColumnName(i), rs.getObject(i));
            }
            list.add(row);
        }
        return list;
    }


ArrayList<HashMap<String, Object>> list = resultSetToArrayList(rs);
        for (HashMap<String, Object> row : list) {
            System.out.println(row.get("id"));
            System.out.println(row.get("name"));
        }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Ну видимо надо сделать массив и записать в него все данные циклом, чтобы потом где угодно использовать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы