Java 如何在jdbc中获取相同列名值的记录?
我已经从数据库中检索了所有记录,这些记录包含字段名称、电子邮件、id、管理器,我需要获取所有具有相同管理器的数据记录,并将其保存到列表中,以列出如何执行该操作 我已从db has中检索到值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
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那么您已经将数据读入了列表
或列表
,或者类似的东西了?请编辑这个问题,展示你已经做了什么,这样我们就不用再浪费时间去猜测了。那样的话,你应该跟着做