即使在前面的语句中将true执行为true,resultSet.next()也将变为“ false”

时间:2019-01-23 12:27:14

标签: java database eclipse

我正在尝试执行查询并将结果存储在名为“ objRs”的结果集中。 在评估if语句时,将'objRs'评估为'true',并且如果执行if块,则代码将失效。 但是在下面的语句中,“ objRs”作为“ false”出现。

有关更清晰的图片,请参见以下代码:

 if (objRs!= null && objRs.next()) //the statements in this block is                 //executed
   {
                        user_Name = objRs.getString("login_name");
                        user_id = objRs.getString("user_id");
                        corp_id = objRs.getString("corp_id");
                        corp_grp_id = objRs.getString("corporate_group");
                        f_name = objRs.getString("first_name");
                        l_name = objRs.getString("last_name");
                        moNumber = objRs.getString("cont_mobile");
                        gender = objRs.getString("gender");
                        address = objRs.getString("address");
                        city = objRs.getString("b_adr1_city");
                        state = objRs.getString("b_adr1_state");
                        country = objRs.getString("b_adr1_country");
                    }                                  
                }   

                @SuppressWarnings("unused")
                Boolean test = objRs.next();  //the value of test is showing //as 'false' while debugging.

上面的代码是“ try”块的一部分。

请提出一种解决方案,以防止在上述情况下'objRs'变为'false'。

2 个答案:

答案 0 :(得分:0)

根据ResultSet.next(),对此方法的每次调用都移至结果集中的下一个记录,直到返回false为止,表明不再有结果。

  

将光标从其当前位置向前移动一行。 ResultSet游标最初位于第一行之前;第一个对方法的调用接下来使第一行成为当前行;第二个调用使第二行成为当前行,依此类推。

答案 1 :(得分:0)

如果您想testobjRs.next()中获得if通话的价值,只需执行以下操作

Boolean test;
if (objRs!= null && test=objRs.next())
{
  ...
}