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