DBArrayList в список <Map>преобразование после запроса - PullRequest
0 голосов
/ 13 февраля 2020

В настоящее время у меня есть запрос SQL, который возвращает мне информацию в DBArrayList.

Возвращает данные в следующем формате: [{id=2kjhjlkerjlkdsf324523}]

Для следующего шага мне нужно, чтобы он был в формате List<Map> без идентификатора: [2kjhjlkerjlkdsf324523]

Используемые типы данных: DBArrayList и List.

Если это помогает, следующим шагом является функция, которая собирает список и затем заменяет все одинарные кавычки, если есть какие-либо [SQL -Предупреждение инъекции]. Использование:

listMap = listMap.collect() { "'" + Util.removeSingleQuotes(it) + "'" }


public static String removeSingleQuotes(s) {
    return s ? s.replaceAll(/'"/, '') : s
  }

Ответы [ 2 ]

2 голосов
/ 13 февраля 2020

Я провел это утро, работая над этим, и обнаружил, что мне нужно на самом деле собирать DBArrayList следующим образом:

listMap = dbArrayList.collect { it.getAt('id')}

Если вы находитесь в привязке, как я, и ограничены определенным c схема это может помочь, но у @ou_ryperd правильный ответ!

1 голос
/ 13 февраля 2020

Хотя использование DBArrayList не является неправильным, идиома Groovy заключается в использовании результата db как коллекции. Я бы посоветовал вам использовать его таким образом прямо из базы данных:

Map myMap = [:]
dbhandle.eachRow("select fieldSomeID, fieldSomeVal from yourTable;") { row ->
    map[row.fieldSomeID] = row.fieldSomeVal.replaceAll(/'"/, '')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...