gpt4 book ai didi

java - 替代 jdbc 结果集 rs.next()

转载 作者:行者123 更新时间:2023-11-29 06:31:44 24 4
gpt4 key购买 nike

我有一个第一个结果集,我必须在其中迭代用户标识,并且对于每个用户标识,我必须执行多个选择计数 (*),所有这些都返回单值输出。如果你没看懂我说的,请看下面的伪代码:

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();

由于这是低效的,我希望每次都通过编写某种直接查询来检索每个不同的计数来通过结果集,例如

String  cnt1 = stmt.executeQuery("select count(*) as noE from useractiontable where curr_action='edit'"  + " and userId = " + userId).getString("noE");

我知道如果不每次都使用 rs.next() 就无法完成这样的事情。准备声明是要走的路吗?还有别的办法吗?感谢这方面的任何指示。

最佳答案

您可以使用 group by 检索所有带 count(*) 的用户

ResultSet rs = stmt.executeQuery("select userid,count(*) from tablename group by userid");

关于java - 替代 jdbc 结果集 rs.next(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27551247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com