gpt4 book ai didi

java - jdbc 中的语句仅检索第一条记录,尽管有几条记录

转载 作者:行者123 更新时间:2023-12-01 11:00:28 24 4
gpt4 key购买 nike

下面的代码迭代,while 循环,并检索所有匹配的记录:

ResultSet rs3 = st.executeQuery("select id from fbprofiles where age<=(select age from fbprofiles where id="+user+") and id not in("+user+")");
String id;
query = "select id from fbprofiles where age<=(select age from fbprofiles where id="+user+") and id not in("+user+")";
System.out.println(query);
//ResultSet rs4;

while(rs3.next())
{
st = con.createStatement();
id = rs3.getString(1);
System.out.println("id: "+id);
/*query = "select name from fbpages where name in(select name from pagelikes_"+id+" where name not in('"+pagesLiked.toString()+"')) and category in("+category.toString()+")";
System.out.println(query);
rs4 = st.executeQuery(query);
while(rs4.next())
{
message += "<a href="+rs4.getString(1)+".html style=\"color:black\">"+rs4.getString(1)+"</a><br>";
pagesLiked.append(rs4.getString(1));
}*/
}

输出:

id:2

id:3

但是当我删除注释时,循环仅迭代一次,结果集仅包含 1 条记录而不是 2 条记录。

我对所有查询使用了不同且相同的结果集,这也给出了仅 1 条记录的相同输出。

当我 checkin SQL 数据库(11g)时,所有查询都可以正常工作。

最佳答案

当您在同一语句上执行下一个查询时,您将关闭 rs。

public static void main(String[] args) throws SQLException, Exception {
Connection con = ConnectionDefinition.getOracleConnection(); //my oracle connection
String q1 = "select object_name from user_objects";
PreparedStatement ps = con.prepareCall(q1);
ResultSet rs = ps.executeQuery();
while(rs.next()){
ResultSet rs2 = ps.executeQuery(q1);
if(rs.isClosed()){
System.err.println("FRIST RS IS CLOSED");
}
}
con.close();
}

关于java - jdbc 中的语句仅检索第一条记录,尽管有几条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33371734/

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