现在还没有高效的方法
只能rs.last();
rs.getRow();

解决方案 »

  1.   

    可以用select count(*) 的sql来查询,然后rs.getRow(1)
      

  2.   

    通用的SQL,推荐使用:
    可以用select count(*) 的sql来查询,然后rs.getRow(1)
    如果使用专用的数据库,可以用专用数据库提供的API
      

  3.   

    <%
    ResultSet rs;
    rs=test.executeQuery("select count(*) from test");
    rs.next();
    int a=rs.getInt(1);
    out.println(a);
    %>
    获取记录总数的源代码如上。输出的a为你想要的结果
      

  4.   

    我不需要得到所有记录的个数,而是当前记录集中所包含的记录的个数.
    我发现使用
    rs.last();
    int count = rs.getRow(); 可以得到当前记录集的个数,
    但对于存储过程返回的记录集就不行,返回错误是TYPE_FORWORD_ONLY
    我偏偏就需要从获取存储过程返回来的记录集中记录的个数,
    ●●●请问该怎么办?●●●我的存储过程很简单:
     ALTER PROCEDURE dbo.ListUserAlerts
    (
    @uid int = -1
    )
    AS
    if (@uid <> -1)
    SELECT * FROM Alerts WHERE (UID = @uid)
    else
    RETURN
      

  5.   

    用存储过程范围rs..然后
    rs.last();
    rs.getRow();
      

  6.   

    使用rs.last()效率极低,尤其条数很多的时候,不建议使用还是使用select count(0) from 要快得多