我在属性里面找了半天也没有找到
请问各位大哥,除了遍历一边还有没有其他方法啊

解决方案 »

  1.   

    你可以用count()实现,并不需要从result里面获得。
      

  2.   

    getFetchSize我用过啊
    但是值一直是0啊
    但是我ResultSet里面是有数据的啊
      

  3.   

    如果rs.getType()等于TYPE_FORWARD_ONLY
    你可以这样做
    if(rs.last()){
      rs.getRow();
    }
      

  4.   

    ResultSet rs = conn.createStatement();
    rs.last();
    int count=rs.getRow();
    rs.beforeFirst();
      

  5.   

    我用了你的方法 不知道为什么
    他说我的jdbc不支持 last方法啊
      

  6.   

    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
    rset = stmt.executeQuery(strSql);
      

  7.   

    ResultSet必须要一条一条的next才能到达最后一行
    因为不是一次把所有数据全部取过来,所以不知道有多少行,ReslutSet不提供返回行数的操作
    只能用count
      

  8.   

    如果使用count sql 语句可以这么写吧
    "select count(*) form 表名"
    但是如何取得从jdbc返回的值呢
      

  9.   

    rs.getInt(1)。
    或者用语句"select count(*) as recordCount from 表名"然后rs.getInt(recordCount)
      

  10.   

    用sql语句 select @@rowcount as count可以返回上次select语句所影响的行数,返回为以count为列名的结果集
      

  11.   

    我用了你的方法 不知道为什么
    他说我的jdbc不支持 last方法啊
    初始化stmt 的时候,用下面的句子stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
      

  12.   

    同意楼上的~~~
    这样的stmt得到的RS可以getMaxrows()来得到行数
      

  13.   

    rs.last()
    rs.getRow();-->count
    rs.beforeFirst
    while(rs.next())
      

  14.   

    方法好多:
        楼上也说到了:
        例如:rs.last();rs.getRow();
        还有通过sql语句统计:select count(*) as c from tablename where cause ;rs.getInt('c');