我有多个查询,我想同时使用Java JDBC连接到SQL服务器读取数据。
在单个查询中,我知道您可以按如下方式遍历记录
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
}
}
...但我不想一次循环一个。我希望能够让每个结果集的光标位置同步移动。有没有一种方法可以用来手动移动光标,或者最好的方法是什么?
答案 0 :(得分:1)
如果我理解你的问题,你会有这样的情景:
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, ...
只需在while循环中移动for循环即可实现该模式:
while(rs.length > 0 && !rs[0].isAfterLast()){
for (int i = 0; i < NUM_RECORDSETS; i++){
rs[i].next();
//get stuff from this recordset
}
}
如果我误解了你的问题,并且你想同时读取结果集(如多线程),我强烈反对这样做。