【发布时间】:2019-01-02 17:50:35
【问题描述】:
我正在对玩家进行排名,我需要将结果输入 Java。
我的代码是
public static int getRank(UUID uuid) throws SQLException {
checkConnection();
PreparedStatement s = con.prepareStatement(
"SET @rownum := 0; SELECT rank FROM ( SELECT @rownum := @rownum + 1 AS rank, wins, uuid FROM `SKYWARS` ORDER BY wins DESC ) as result WHERE uuid=?");
s.setString(1, uuid.toString());
ResultSet r = s.executeQuery();
r.next();
return r.getInt(1);
}
但是 s.execute() 返回 false,这意味着没有结果集。我如何获得结果集?在 MySQL 工作台中,它以网格形式返回值排名和获胜。
解决方案:
我在连接语句中添加了?allowMultiQueries=true。这使我的代码按原样工作。
【问题讨论】:
-
从您的描述来看,这听起来更像是一个 Java 问题。添加标签可能会对您有所帮助。
-
我不使用 Java,但许多 MySQL API 不允许您在一次调用中执行多个查询。将
SET语句放在单独的调用中。 -
@Barmar 我设置了一个属性以允许多查询
-
@UncleCarl 谢谢,会做的 编辑:我已经有了
-
查看stackoverflow.com/questions/18297689/show-sql-error-message了解如何打印SQL错误信息。