如果查询没有返回任何记录,结果集的值是多少?

时间:2010-12-09 06:13:18

标签: java

public ResultObject takePrefixGroupId(ArrayList prefixGroupName) 
{
 debugLog(MODULE_NAME, "Inside the takePrefixGroupId() of LCRConfigurationSessionBean");
 ResultObject resultObject = new ResultObject(LCRResponseCode.LCR_CONFIGURE_SEARCH_ERROR_EJB, null);

 String strSelectQuery = null;
 String strMessage=null;
 ResultSet resSet = null;
 Collection colInValideRecord =new ArrayList();
 Collection colErrorMessage=new ArrayList();
 Collection colValidRecord = new ArrayList();
 Collection colDataValidation=null;
 try{
  for(int i=0;i<prefixGroupName.size();i++)
  {
   strSelectQuery = "select DESTINATIONGROUPID from TBLMDESTINATIONGROUP where NAME='"+prefixGroupName.get(i)+"'";
   debugLog(MODULE_NAME, "Query::::::"+strSelectQuery);   
   resultObject = execute(strSelectQuery);
   if(resultObject.getResponseCode() == LCRResponseCode.SUCCESS_RESPONSE_CODE)
   {
    resSet = (ResultSet)resultObject.getResponseObject();
    debugLog(MODULE_NAME, "resSet::::::"+resSet);
    if(resSet != null)
    {
     while(resSet.next())
     {
      colValidRecord.add(resSet.getString("DESTINATIONGROUPID"));
     }
    }
    else
    {
     strMessage=LCRResponseCode.errorCodeToMessage(LCRResponseCode.PREFIX_GROUP_DOES_NOT_EXIST_ERROR);
     debugLog(MODULE_NAME,"MESSAGE::: "+strMessage);
     colErrorMessage.add(strMessage);
     colInValideRecord.add(prefixGroupName);
     debugLog(MODULE_NAME,"No Prefix Group is found."); 
    }
    colDataValidation=new ArrayList();
    colDataValidation.add(colValidRecord);
    colDataValidation.add(colInValideRecord);
    colDataValidation.add(colErrorMessage);
    resultObject.setResponseObject(colDataValidation);      
    resultObject.setResponseCode(LCRResponseCode.SUCCESS_RESPONSE_CODE);

   }
   else
   {
    debugLog(MODULE_NAME, "Unable to execute search query for in searchDestination() of LCRConfigurationSessionBean.");
    resultObject.setResponseCode(LCRResponseCode.LCR_CONFIGURE_SEARCH_ERROR_EJB);
   }
  }

 }
 catch(Exception e)
 {
  e.printStackTrace();
  errorLog(MODULE_NAME, "exception in searchDestination() of LCRConfigurationSessionBean");
  resultObject.setResponseCode(LCRResponseCode.LCR_CONFIGURE_SEARCH_ERROR_EJB);
  resultObject.setException(e);
 }  
 return resultObject;
}

这是代码

2 个答案:

答案 0 :(得分:6)

根据the javadocStatement.executeQuery()永远不会返回null。所以答案是ResultSet没有行。

如果next()在您第一次调用时返回false,则可以判断ResultSet为空。

您也可以通过调用可选 isAfterLast()方法来判断。如果支持,此方法将为您提供答案,而不会将光标作为副作用推进。


我不知道你的代码的答案是什么,因为你正在调用一个你没有提供的实现的execute方法。

答案 1 :(得分:0)

  

ResultSet executeQuery(String sql)                          throws SQLException执行给定的SQL   声明,返回单个   ResultSet对象。

     

参数: sql - 通常是要发送到数据库的SQL语句   静态SQL SELECT语句

     

返回:一个ResultSet对象,其中包含由...生成的数据   给定查询;永远不会

     

抛出: SQLException - 如果发生数据库访问错误,请执行此操作   在关闭的Statement上调用方法   或者给定的SQL语句产生   除单个ResultSet之外的任何内容   对象

你也可以这样做:

if(resSet.last().getRow() > 0)
{ 
 resSet.first();
 while(resSet.next())
 {
  colValidRecord.add(resSet.getString("DESTINATIONGROUPID"));
 }
}
else
{
 //...