Как получить записи с одинаковыми значениями имени столбца в JDBC? - PullRequest
0 голосов
/ 12 марта 2019

Я получил все записи из базы данных, в которых есть поля name, email, id, manager, и мне нужно получить все записи данных, в которых есть один и тот же менеджер, и сохранить его, чтобы посмотреть, как я могу это сделать?

Я получил значения из базы данных:

 List<Map<String, String> dbData=new ArrayList<>();
while(query.next()){
 LinkedHashMap<String,String> rowData=new LinkedHashMal<>();
 for(columns=1;columns<total columns; columns++){
 rowData.put(columnNames,query.getString(columnNames.get(columns));
 }
 dbData.add(rowData);
}

Где columnNames - список заголовков, который содержит все заголовки столбца.

Поэтому мне нужно получить все записи одного и того же менеджера и экспортировать его в отдельныйФайл Excel

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Если вы хотите фильтровать по определенному менеджеру, вы должны включить менеджера в качестве условия WHERE вашего запроса.Что-то вроде:

SELECT name, email, id, manager FROM Table WHERE manager = 'manager1'

Когда у вас есть все нужные записи, вы можете перебрать свой ResultSet и добавить их в свой список.

Для получения дополнительной информации вы можете проверить thisссылка

0 голосов
/ 12 марта 2019

Сначала вы читаете все строки из базы данных в объекты Java.

Предполагая, что вы читаете данные в List<Record>, вы можете затем сгруппировать данные, используя потоки Java 8:

List<Record> rows = ...
Map<String, List<Record>> byManager = rows.stream()
        .collect(Collectors.groupingBy(Record::getManager, Collectors.toList()));

ОБНОВЛЕНИЕ

Если запись является Map<String, String> отображением имени столбца в строковое значение, код будет:

List<Map<String, String>> rows = ...
Map<String, List<Map<String, String>>> byManager = rows.stream()
        .collect(Collectors.groupingBy(row -> row.get("manager"), Collectors.toList()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...