MySql - 获取行计数= 0

时间:2015-04-28 15:53:54

标签: java mysql row

我正在尝试检查行数0是否但是我查看了java文档,但我发现了一些getrowid但是dit不起作用我没有找到任何更多的方法来获取行数

public boolean isFriends(ProxiedPlayer inviter, ProxiedPlayer invited) {
    try {
        Statement sql = mySql.getConnection().createStatement();
        ResultSet resultSet = sql.executeQuery("SELECT COUNT(*) AS 1 FROM `friends` WHERE `friendinviter`='" + inviter.getName() + "' AND `invitedfriend`='" + invited.getName() + "';");
        if (resultSet == 0) {
            sql.close();
            resultSet.close();
            return false;
        }
        sql.close();
        resultSet.close();
        return true;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

有人有办法检查这个,如果是的话请告诉我

2 个答案:

答案 0 :(得分:1)

  1. ResultSet是一个对象,您无法将其与0进行比较。
  2. 您可以使用resultset.next() 如果resultset有另一个对象/元组,则为true。 如果没有下一个对象/元组,它会给出错误。 在您的情况下,它将给出false,您将知道结果集不包含任何结果或行被提取。
  3. 您也可以将代码折射为

    if (resultSet == 0) {
                sql.close();
                resultSet.close();
                return false;
            }
            sql.close();
            resultSet.close();
            return true;
    

    try{
    if(resultset.next())
     return true;
    return false; 
    }
    catch(Exception e){}
    finally{
       sql.close();
       resultSet.close();
    } 
    

答案 1 :(得分:0)

要检查rowcount是否为零,您可以执行

if (!(resultSet.next())) { // will work as resultSet == 0

}

来自docs

  

布尔下一个()
   true如果新的当前行有效; false如果有的话   没有更多行