Java 如何在jdbc中获取相同列名值的记录?

Java 如何在jdbc中获取相同列名值的记录?,java,database,jdbc,Java,Database,Jdbc,我已经从数据库中检索了所有记录,这些记录包含字段名称、电子邮件、id、管理器,我需要获取所有具有相同管理器的数据记录,并将其保存到列表中,以列出如何执行该操作 我已从db has中检索到值 List<Map<String, String> dbData=new ArrayList<>(); while(query.next()){ LinkedHashMap<String,String> rowData=new LinkedHashMal<&g

我已经从数据库中检索了所有记录,这些记录包含字段名称、电子邮件、id、管理器,我需要获取所有具有相同管理器的数据记录,并将其保存到列表中,以列出如何执行该操作

我已从db has中检索到值

 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);
}

List如果要按某个经理进行筛选,则必须将该经理作为
WHERE
子句包含在查询中。比如:

SELECT name, email, id, manager FROM Table WHERE manager = 'manager1'
一旦你有了所有你想要的记录,你就可以遍历你的
结果集
,把它们也添加到你的列表中


要了解更多信息,可以先查看,将数据库中的所有行读取到Java对象中

假设将数据读入
列表
,则可以使用Java 8流对数据进行分组:

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

更新

如果记录是将列名映射为字符串化值的映射,则代码为:

List<Map<String, String>> rows = ...
Map<String, List<Map<String, String>>> byManager = rows.stream()
        .collect(Collectors.groupingBy(row -> row.get("manager"), Collectors.toList()));
列出行=。。。
Map byManager=rows.stream()
.collect(Collectors.groupingBy(row->row.get(“manager”)、Collectors.toList());

“哪些记录具有相同的管理器”您的意思是希望所有记录都具有特定的管理器,还是希望将数据收集到共享同一管理器的记录组中,例如
Map
之类的结果?您完全一样,但我不知道如何实现它如果它具有相同的管理器,我希望它与列表一样,如果您没有使用POJO模型,列表应该包含什么?我没有使用POJOmodel@user10506901不知道“不使用pojo模型”是什么意思。问题是“我需要获取所有数据记录[…],并将其保存到列表中”。要在列表中存储记录,需要一些类来保存记录数据。该类是否是POJO并不重要。我使用map检索了作为键和值对的值,我被困在如何对记录进行分组(如果它有相同的管理器)中,我没有使用POJO,因为它是动态的,比如,如果在db中添加新列,则需要更改pojoclass@user10506901那么您已经将数据读入了
列表
列表
,或者类似的东西了?请编辑这个问题,展示你已经做了什么,这样我们就不用再浪费时间去猜测了。那样的话,你应该跟着做