昨天遇到一个问题,就是判断ResultSet是否为空,跟大家一起分享一下。
首先:
if(rs==null){}else{}
或者
rs.wasNull();
这就是误人的,就算里面没有记录,rs也不会为空。
其次:
if(rs.next())
//true
else
//false
但是由于rs.next()会向后移一位,有的情况下并不适用。也有的人说可以移后再用rs.first()来调整游标指回来,但是如果里面没有记录,这样会抛异常,还是有问题。
所以
if (rs.next()) {
do{
}while (rs.next());
} 在两次用到rs.next()这种情况下,就可以用这样的结构来解决。
但是这样可能没有解决根本问题,所以如果有知道最优方案的高手,可以分享一下。