在java中执行带条件的查询(响应=对空结果集的非法操作)

时间:2017-12-08 02:31:47

标签: java

我有问题,我想根据条件执行查询。概念是如果结果为null,则执行另一个查询。但是当我尝试它时,结果是错误

  

空结果集上的非法操作

我的代码:

2 个答案:

答案 0 :(得分:1)

在此行,您将获得结果集

rs = pst.executeQuery();

现在我们想知道rs不是null而且也不是空的。所以我们会给出这样的条件

if (rs != null && !rs.isBeforeFirst() ) {    
    String strSQL = "SELECT userid FROM user WHERE userid=?;"; 
}
  

点击此链接以获取参考Check result set is empty or not

在您的代码中,它不会检查ResultSet是否为空。

答案 1 :(得分:0)

if(rs.getString(1) == null && rs.getString(2) == null)条件为真时,您尚未执行查询 要解决此问题,请按以下步骤更改if条件:

if(!rs.next()){
    strSQL = "SELECT userid FROM user WHERE userid=?;";
    pst = con.prepareStatement(strSQL);
    pst.setString(1, userid);
    rs = pst.executeQuery();
}

注意:您已在strSQL声明中重新声明了if变量。