java - 多个查询java jdbc - 同时读取记录

标签 java jdbc

我有多个查询,希望使用与 SQL 服务器的 java JDBC 连接同时读取数据。

在单个查询中,我知道您可以按如下方式循环访问记录

while (rs.next()){
  //get record and do stuff
}

但是,如果我有多个记录集,如何同时对每个记录集执行此操作。每个结果集的长度相同。我实际上制作了一系列结果集,认为我可以循环结果集,如下所示......

for (int i = 0;i<NUM_RECORDSETS;i++){
 while(rs[i].next()){
    //get stuff from this recordset
  }
}

...但我不想一次循环一个。我希望能够让每个结果集的光标位置同步移动。有没有一种方法可以用来手动移动光标,或者最好的方法是什么?

最佳答案

如果我正确理解你的问题,你会遇到这样的情况:

Record pos :  0 |  1 |  2 |  3
ResultSet-1: A1 | B1 | C1 | D1
ResultSet-2: A2 | B2 | C2 | D2
ResultSet-3: A3 | B3 | C3 | D3

并且您想按以下顺序迭代结果:

A1, A2, A3, B1, B2, B3, ...

您最初发布的代码将按以下顺序迭代:

A1, B1, C1, D1, A2, ...

只需将 for 循环移至 while 循环内即可实现该模式:

while(rs.length > 0 && !rs[0].isAfterLast()){
    for (int i = 0; i < NUM_RECORDSETS; i++){
        rs[i].next();
        //get stuff from this recordset
    }
}

如果我误解了您的问题,并且您想要同时读取结果集(如在多线程中),我强烈建议不要这样做。

关于java - 多个查询java jdbc - 同时读取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35857721/

相关文章:

java - 尝试使用netbeans和mysql数据库向数据库中插入数据

java - 保存到 mysql 数据库时出现 jbutton 问题

java - JdbcTemplate — 记录数据源连接 url

linux - Linux 上的可移植 JRE - 可能吗?

java - 将日志发送到 Graylog 并以 Gelf 格式发送

java - Liferay Tomcat Server 不断在服务器控制台上发出警告消息

java - 在 Java SQL 中自动关闭结果集

java - 如何将数据插入带有外键的表中?

java - 从 jdbc 读取 db2 char 字段的不明确字符

java - Java 注解会影响运行时性能吗?