试图检查MySQL中是否存在值

时间:2015-04-28 07:27:07

标签: java mysql sql jdbc

我正在尝试检查数据库中已存在的玩家姓名和受邀玩家名称,我试试这个:

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

我尝试通过尝试获取它在结果集中返回的内容来尝试调试它,但代码从未到目前为止。

2 个答案:

答案 0 :(得分:0)

您的语法错误:

   ResultSet resultSet = sql.executeQuery("SELECT * FROM `friends` WHERE `friendinviter`='" + inviter.getName() + "' and `invitedfriend`='" + invited + "';");

你错过了线索中的逻辑运算符。

你应该学习准备好的陈述。

答案 1 :(得分:0)

我的第一个建议是你应该使用PreparedStatement代码。

其次在行"SELECT * FROM friends WHERE friendinviter='" + inviter.getName() + "'invitedfriend='" + invited + "';"中我认为部分friends需要将VARCHAR作为参数传递,但是您传递的是friendinviter的实例。所以更正的代码应该是:

invitedfriend