我有问题,我想根据条件执行查询。概念是如果结果为null,则执行另一个查询。但是当我尝试它时,结果是错误
空结果集上的非法操作
我的代码:
答案 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
变量。