代码一:
boolean b = rs.next();
if(rs.next) {
  return true;
} else { return false;
}
结果为 false;
代码二:
boolean b = rs.next();
if(b) {
  return true;
} else { return false;
}
结果为ture;
两个代码出来的结果不一样,为啥?

解决方案 »

  1.   

    rs.next()表示游标在结果集里向下移了一行,
    代码一里执行到boolean b = rs.next();时,向下移一行,
    执行到if(rs.next) {时又向下移了一行,总共两行。而代码二却只移动了一行,所以结果可能不一样。
      

  2.   

    例如你rs里只用一行数据,
    游标最开始指在第一行的前面,
    代码一的写法,当向后移动两行时,肯定没有next了,所以为false。而代码二,移动一行,游标正好指在第一行数据上,所以为true。