用尽的结果集[重复]

Posted

技术标签:

【中文标题】用尽的结果集[重复]【英文标题】:Exhausted ResultSet [duplicate] 【发布时间】:2014-06-09 20:58:41 【问题描述】:

我一直在寻找这个解决方案,但我找不到我想要的答案... 我有多个要保存到变量的 ResultSet。它显示“Exhausted ResultSet”错误。下面是我的代码。

    String ime1="select ime from UPORABNIKI_PODATKI where UPORABNIKI_PODATKI.username='"+user1+"'";
    Statement st1=conn.createStatement();
    ResultSet rs1=st1.executeQuery(ime1);
    rs1.next();
    String ime11=rs1.getString("ime");

    String priimek2="select priimek from UPORABNIKI_PODATKI where UPORABNIKI_PODATKI.username='"+user1+"'";
    Statement st2=conn.createStatement();
    ResultSet rs2=st2.executeQuery(priimek2);
    rs2.next();
    String priimek22=rs2.getString("priimek");

    String starost3="select starost from UPORABNIKI_PODATKI where UPORABNIKI_PODATKI.username='"+user1+"'";
    Statement st3=conn.createStatement();
    ResultSet rs3=st3.executeQuery(starost3);
    rs3.next();
    String starost33=rs3.getString("starost");

    String high4="select max(REZULTATI.rezultat) as high from REZULTATI where REZULTATI.username='"+user1+"'";
    Statement st4=conn.createStatement();
    ResultSet rs4=st4.executeQuery(high4);
    rs4.next();
    String high44=rs4.getString("high");

    String povprecje5="select UPORABNIKI_PODATKI.povprecje from UPORABNIKI_PODATKI where UPORABNIKI_PODATKI.username='"+user1+"'";
    Statement st5=conn.createStatement();
    ResultSet rs5=st5.executeQuery(povprecje5);
    rs5.next();
    String povprecje55=rs5.getString("povprecje");

如果有人花一点时间来解决这个问题,我将不胜感激。 谢谢! :)

【问题讨论】:

【参考方案1】:

你没有检查 next 的返回值。如果您没有得到任何行,则将出现Exhausted ResultSet。 你应该这样做:

if (rs1.next())
   String ime11=rs1.getString("ime");

【讨论】:

关于为什么 OP 得到 Exhausted Resultsset 异常,你说对了一半。

以上是关于用尽的结果集[重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQLException:用尽的结果集

Oracle减少字段重复的结果集

结果集:做 ... 而 (...);与 while(...) ... [重复]

JDBC中结果集的“Kludge”[重复]

jsonify Flask中的SQLAlchemy结果集[重复]

具有多个结果集的NHibernate存储过程[重复]