繁体   English   中英

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

[英]multiple queries java jdbc - read records simultaneously

我有多个查询,希望使用与SQL Server的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循环内移动for循环即可实现该模式:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM