【发布时间】:2015-04-28 07:27:07
【问题描述】:
我正在尝试检查数据库中是否已经存在玩家姓名和受邀玩家姓名,我试试这个:
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;
}
}
我尝试通过尝试获取它在结果集中返回的内容来调试它,但到目前为止代码从未出现过。
【问题讨论】:
-
您的 SQL 语法不正确。检查 SQL 语句是否有效。此外,您应该使用
PreparedStatement而不是连接字符串来创建 SQL 语句。 -
在我看来,您在表中通过名称 (inviter.getName) 引用另一个用户 - 这取决于您的用例,但通常您希望通过 ID 而不是名称来引用其他实体