int count = 0;
rs.last();
count = rs.getRow();

解决方案 »

  1.   

    但是会出现这样一个东西:
    java.lang.AbstractMethodError: COM.ibm.db2.jdbc.app.DB2ResultSet.last()Z
    当使用rs.first()时也会出现,这也就是我为什么不用
    while(rs.next()) {
       count++;
    }
    的原因
      

  2.   

    可以直接在sql语句里面写一个函数count(*)就可以了
      

  3.   

    可以直接修改SQL语句了,比如这样做:
    PreparedStatement preStat = connection.prepareStatement("SELECT COUNT(*) FROM TAG WHERE FORMATID=?");
    preState.setLong(1, FORMATID);
    // 以上把你查询的*修改成为COUNT(*)
    ResultSet rs = preStat.executeQuery();
    long count = 0;
    if ( rs.next()) {
        count = rs.getLong(1);
    }
    大概就是这样的操作,你直接取结果集的值就可以了.让计数的工作交给数据库去做.
    不知道这样改能不能满足你的需求.
      

  4.   

    确实,我刚刚也这么做的,已经ok了
    String strSql = "SELECT COUNT(TAGID) FROM TAG WHERE FORMATID = " + FORMATID;
    ResultSet rs = stmt.executeQuery(strSql);
    rs.next();
    int count = rs.getInt(1);谢过上面两位了!