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

标签 java jdbc

使用 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/

相关文章:

java - maven webapp-cache.xml 的问题

java - 从格式化字符串中读取值 Java、Groovy

java - 无法在 Spring Roo 中进行逆向工程 (DBRE)

java - 由于截断异常,MySQL 无法可靠地获取 auto inc 值返回

java - 保存生成的数组

java - 如何在 Java Applet 中保存一些配置信息?

java - java继承枚举值

java - 使用 CMS GC 时,Tomcat 6 连接池变得古怪

java - 我试图在单个程序中使用两个 while 循环来迭代两个查询,但第一个 while 循环未执行

java - 即使使用准备好的语句也会出现 SQLSyntaxError