gpt4 book ai didi

java - 将 JDBC 结果集转换为嵌套数组列表

转载 作者:行者123 更新时间:2023-12-01 12:33:29 25 4
gpt4 key购买 nike

使用 JDBC,我成功地在数据库上运行查询并接收结果集 (rs)。使用这些信息,我希望生成一个嵌套数组列表。

// Created Array List
public static ArrayList<ArrayList<SessionRecord>> tempSessionOrg = new ArrayList<ArrayList<SessionRecord>>();

内部列表需要根据第一列返回的信息进行分组。这就是我到目前为止所得到的一切:

while(rs.next()) { 
SessionRecord temp = new SessionRecord(rs.getString("SessionID"),rs.getString("NetworkAddress"),rs.getString("EventType"),rs.getString("Time"),rs.getString("Name"),rs.getString("SessionType"),rs.getString("ProcessType"));
}

我已经编写了一个非常类似的程序,不同之处在于它将结果集放入单个 ArrayList 中而不进行嵌套。不幸的是,这段类似的代码并没有真正帮助我找到解决方案。

while(rs.next()) {
dbSession.add(new SessionRecord(rs.getString("name"),rs.getString("ParticipantName"),rs.getString("GuestLoggedOnUsername"),rs.getString("GuestMachineName"),rs.getString("inicio"),rs.getString("diferencia")));
}

有什么建议吗?

编辑:

此时,我有以下两 block 代码。

一:

public static ArrayList<SessionRecord> singleSessionRecords = new ArrayList<SessionRecord>();
public static ArrayList<ArrayList<SessionRecord>> tempSessionOrg = new ArrayList<ArrayList<SessionRecord>>();

两个:

while(rs.next()) { 
singleSessionRecords.add(new SessionRecord(rs.getString("SessionID"),rs.getString("NetworkAddress"),rs.getString("EventType"),rs.getString("Time"),rs.getString("Name"),rs.getString("SessionType"),rs.getString("ProcessType")));
}

Map<String, List<SessionRecord>> byID = singleSessionRecords.stream().collect(Collectors.groupingBy(SessionRecord::SessionID));
tempSessionOrg.add((ArrayList<SessionRecord>) Map.values());

我收到 Map 行的类型不匹配错误,并且无法在最后一行中对非静态方法进行静态引用。两者中的后者对我来说很容易修复,但我不确定如何正确实现 map 。

最佳答案

您使用的是 Java 8 吗?如果是这样,可以通过以下代码轻松实现:

Map<String, List<SessionRecord>> byName
= temp.stream()
.collect(Collectors.groupingBy(SessionRecord::name));

在此示例中,我按名称对 sessionRecords 进行分组,您可以轻松更改此名称以满足您的分组需求。

关于java - 将 JDBC 结果集转换为嵌套数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25753542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com