HashMap с несколькими значениями под одним и тем же ключом

Я не уверен - ли это лучший подход, но здесь - то, что я обычно делаю для получения официального набора документов с помощью DB-API 2 совместимых модуля:

cursor.execute("""SELECT foo, bar, baz, quux FROM table WHERE id = %s;""", 
                  (interesting_record_id,))

for foo, bar, baz, quux in cursor.fetchall():
    frobnicate(foo + bar, baz * quux)

метод форматирования запроса является одним из стандартов DB-API, но, оказывается, предпочтительный метод для Psycopg2; другие адаптеры DB-API могли бы предложить другую конвенцию, которая будет прекрасна.

Запись запрашивает как это, где неявный кортеж, распаковывающий, используется для работы с набором результатов, обычно было более эффективным для меня, чем попытка волноваться о соответствии именам переменной Python к именам столбцов SQL (который я обычно только использую для отбрасывания префиксов, и затем только если я работаю с подмножеством имен столбцов, таким образом, что префиксы не помогают разъяснить вещи больше), и очень лучше, чем запоминание идентификаторов числового столбца.

Этот стиль также помогает Вам избежать SELECT * FROM table..., который является просто аварией обслуживания для чего-либо кроме самых простых таблиц и запросов.

Так, не точно ответ Вы просили, но возможно просвещали, тем не менее.

188
задан Bozho 10 February 2011 в 02:17
поделиться

1 ответ

Используя Коллекторы Java

// Group employees by department
Map<Department, List<Employee>> byDept = employees.stream()
                    .collect(Collectors.groupingBy(Employee::getDepartment));

, где Отдел является Вашим ключом

0
ответ дан 23 November 2019 в 05:43
поделиться
Другие вопросы по тегам:

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