JDBC判断数据库查询结果集是否为空
通常来说都是用rs.next()来判断结果集是否为空,但是由于执行rs.next()后指针指向的是结果集中的第一条记录,此时再用while(rs.next())取结果集中的数据就会导致第一条数据无法得到。所以用以下代码段是个比较好的判断方法。
if(!rs.next()) //结果集为空
{
//执行某操作
}
else //不为空
{
do
{
//循环执行某操作,这里用do-while先走执行操作,然后while判断。
}while(rs.next());
}
-------------------------------------错误的做法-------------------------------------
这里当正常判断: if(rs.next()){//rs不为空
while(rs.next()){
//循环执行某操作
}
}else{//rs为空
//执行某操作
}
这个时候因为if里的rs.next()做判断游标往后走了一个,所以当下面while里rs.next做循环判断的时候,就是
从第二条数据开始的了。但是我们要取得第一条数据。就用上面的做法。
通常来说都是用rs.next()来判断结果集是否为空,但是由于执行rs.next()后指针指向的是结果集中的第一条记录,此时再用while(rs.next())取结果集中的数据就会导致第一条数据无法得到。所以用以下代码段是个比较好的判断方法。
if(!rs.next()) //结果集为空
{
//执行某操作
}
else //不为空
{
do
{
//循环执行某操作,这里用do-while先走执行操作,然后while判断。
}while(rs.next());
}
-------------------------------------错误的做法-------------------------------------
这里当正常判断: if(rs.next()){//rs不为空
while(rs.next()){
//循环执行某操作
}
}else{//rs为空
//执行某操作
}
这个时候因为if里的rs.next()做判断游标往后走了一个,所以当下面while里rs.next做循环判断的时候,就是
从第二条数据开始的了。但是我们要取得第一条数据。就用上面的做法。