Java 显示额外行的查询

Java 显示额外行的查询,java,sql,Java,Sql,伙计们,事情是这样的,当我试图运行查询时,它显示了3个结果(),但当我运行 而(rs.next())size++; 它返回4,当我试图显示数据时,它给我无效的游标状态,那么我的查询有什么问题吗 谢谢结果集的默认敏感度是仅键入_FORWARD_,这意味着它不能滚动;您不能调用任何移动光标的方法- 先前的 首先 最后 先 后遗症 相对(整数行) 绝对值(整数行) 除了next,您的结果集无法滚动。如果您的结果集是以默认灵敏度创建的,则不能使用rs.first()滚动它们通过while语句中的rs

伙计们,事情是这样的,当我试图运行查询时,它显示了3个结果(),但当我运行 而(rs.next())size++; 它返回4,当我试图显示数据时,它给我无效的游标状态,那么我的查询有什么问题吗


谢谢

结果集的默认敏感度是
仅键入_FORWARD_
,这意味着它不能滚动;您不能调用任何移动光标的方法-

  • 先前的
  • 首先
  • 最后
  • 后遗症
  • 相对(整数行)
  • 绝对值(整数行)
除了
next
,您的结果集无法滚动。如果您的结果集是以默认灵敏度创建的,则不能使用
rs.first()滚动它们通过while语句中的
rs.next()
移动到最后一个端点后

<%
                String qTotal = "SELECT MsThread.ID, MsThread.ThreadName, Count(MsThread.ThreadName) AS TotalPost, ThreadCategory FROM MsThread LEFT OUTER JOIN MsPosts ON MsThread.ThreadName = MsPosts.ThreadName GROUP BY MsThread.ID, MsThread.ThreadName, MsThread.ThreadCategory;";

                ResultSet rs = stmt.executeQuery(qTotal);

                    int size = 0;

                    while(rs.next())
                    {
                        out.print(size++);%><br/><%
                    }
                    rs.first();   
                        out.println(rs.getString("id"));    
                    rs.next();
                        out.println(rs.getString("id"));    
                    rs.next();
                        out.println(rs.getString("id"));    
                    if(!rs.next())
                    {   
                        out.println("no data");
                    }
                    else
                        out.println(rs.getString("id"));  
              %>    
第一次创建ResultSet对象时,光标位于第一行之前,因此得到4


谢谢

这是JDBC吗?您是如何初始化stmt的?。默认情况下,在连接中调用createStatement()时,它将是一个“TYPE_FORWARD_ONLY”的rs。如果是这种情况,first()方法应该引发异常。。。
but when i run the while(rs.next())size++; it returns 4,