我也想知道答案,刚才看了半天帮助也找不到相关的ResultSet的函数

解决方案 »

  1.   

    sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); strSQL = "select name,age from test";
    sqlRst = sqlStmt.executeQuery(strSQL); //获取记录总数 
    sqlRst.last(); 
    intRowCount = sqlRst.getRow();
      

  2.   

    没有现成的方法,还是自己写个sql的好
    String sqlCount="select count(*) from tableName whereCondition";
    ResultSet rsCount= StateMent stmt.executeQuery(sqlCount);
    rsCount.next();
    int count=rsCount.getInt(1);
    rsCount.close();
      

  3.   

    ResultSet rsCount= StateMent stmt.executeQuery(sqlCount);你可真有创意
      

  4.   

    to  sikuan
    我的方法不行吗/?
      

  5.   

    如果从效率来说,感觉还是另外自己提供一个查询记录总数的方法,正如sikuan(冰糖★葫芦★头) 所说的:)
      

  6.   

    我要是想任意移到某一位置,怎么做呢?rs.moveToCurrentRow(9)行不行
      

  7.   

    public void moveToCurrentRow()  throws SQLExceptionMoves
     the cursor to the remembered cursor position, usually the current row. This method has no effect if the cursor is not on the insert row.移动到某一位置应该用next()
      

  8.   

    strSQL = "select count(*) from test";
      

  9.   

    拙见:
       看你查询的结果了.
       如果你不管查询的字段内容,光要知道记录数,那么用 select count(*)......
    挺好的.
       如果你还要做其他事情,如 select A.aa,B.bb from A,B.....这种情况下,要知道结果记录数,并且还要用查询得到的结果的话,我想可能只做这一次查询比较好,用查询得到的结果来取记录数.
       数据库小,数据库中数据少时,可能两者差别不明显,如果数据库中每个表有几百万条记录,那样的话,每次查询都会很慢(特别是要从几张表同时取数据时),这时候应尽量减少多数据库操作的次数.
      

  10.   

    rs.last();
    row=rs.getRow();//得到记录数
    rs.first();
      

  11.   

    呵呵,在分页处理时,每次只需要取其中的某些数据(查询出来的记录集只是其中一部分),而又有需要知道总记录集总数,这样就用单独的select count比较好,因为对百万条纪录以上的结果集,这就已经很耗时间了,当然,如果每次就只要知道查询到的记录集(并且不算大,比如在1000以内)的大小的话,那得确没必要再用一条SQL来操作,就直接把结果集的游标移到最后,然后取总行数就OK了,如果还要顺序对记录集进行操作,再返回到第一条,正如楼上所说都可以阿
      

  12.   

    rs.last()
    rs.getRow()rs.next()我所知道好象就是这两中方法