int cnt = 0;
while (rs.next()) {
    System.out.println(rs.getString(1));
    cnt++;
}
if (cnt == 0) {
    System.out.println("没有记录");
}

解决方案 »

  1.   

    if (!rs.next()) {
    System.out.println("没有记录");
    }
    else {
    while (rs.next()) {
    System.out.println(rs.getString(1));
    }
    }这样写的话执行到rs.getString(1)时,rs.next()已经执行了两次
      

  2.   

    if (cnt == 0) {
        System.out.println("没有记录");
    }
    ----
    要这样判断啊~~怎么没有一个方法可以直接判断有没有记录呢?
      

  3.   

    try{
        while(1) {
           rs.next();
           ....
        }
    }catch{
        // 没有记录?
    }
      

  4.   

    if (rs=null) {
    System.out.println("没有记录");
    }
    else {
    while (rs.next()) {
    System.out.println(rs.getString(1));
    }
    }
      

  5.   

    rsmd = rs.getMetaData();
    rs.last();
    int i=rs.getRow();
    if(i==0)
    {
    //no record
    }
      

  6.   

    要这样判断啊~~怎么没有一个方法可以直接判断有没有记录呢?这可能要问问sun 了,呵呵
      

  7.   

    写错了,
    if (rs==null) {
    System.out.println("没有记录");
    }
    else {
    while (rs.next()) {
    System.out.println(rs.getString(1));
    }
    }
      

  8.   

    我的建议:
    rs有个getFetchSize()方法。
    但是,如果你用logger.debug(rs.getFetchSize());的话,你得到的结果永远是10
    但是,如果这样用
    for(int  i=0;i<rs.getFetchSize();i++)
    {
    ....
    }
    这样的话,for循环的次数是你得到的记录数的次数;比较好的用法就是
    int tmpCounter=0;
    while(rs.next())
    {
    tmpCounter++;
    ....
    }
    可以用tmpCounter来实现记数
      

  9.   

    所以,一般来说你是没有办法直接得到rs的记录数的。
    getFetchSize()方法在for循环中能够反映rs的记录数,为什么我就不知道了,希望高手指点一二