У меня есть первый набор результатов, в котором я должен выполнять итерацию через userid и для каждого пользователя, мне нужно выполнить несколько select count (*), все из которых возвращают однозначные выходы. Если вы не поняли, что я сказал, пожалуйста, следуйте псевдокоду ниже:альтернатива jdbc resultset rs.next()
ResultSet rs = stmt.executeQuery("select userid from tablename");
while(rs.next()){
String userid = rs.getString("userId");
ResultSet rs1 = stmt.executeQuery("select count(*) as cnt1 from xxx.... where userId = "+userId);
if(rs1.next())
String count1 = rs1.getString("cnt1");
rs1.close();
ResultSet rs2 = stmt.executeQuery("select count(*) as cnt2...");
if(rs2.next())
String count2 = rs2.getString("cnt2");
rs2.close();
....
rs10.close();
Поскольку это неэффективно, я надеялся пройти Resultset каждый раз, написав какое-то прямой запрос для получения каждого отдельного счета подобный
String cnt1 = stmt.executeQuery("select count(*) as noE from useractiontable where curr_action='edit'" + " and userId = " + userId).getString("noE");
Я знаю, что подобное не может быть выполнено без использования rs.next() каждый раз. Подготавливает заявление путь? Есть ли другой способ? Признайте любые указатели в этом отношении.
Если ваше подключение позволяет, используйте несколько операторов в одном запросе. –
, потому что вы считаете, вы можете использовать здесь 'union '(каждый результат является конкретным подсчетом) –
Выполнение запроса по объекту оператора закрывает любой ранее открытый набор результатов этого же оператора. Вам нужно использовать несколько операторов. –