gpt4 book ai didi

java - 如何从我的查询中获取结果? (MySQL)

转载 作者:行者123 更新时间:2023-11-29 17:16:53 25 4
gpt4 key购买 nike

我正在对玩家进行排名,我需要将结果输入到 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 Workbench 中,它返回值排名并在网格中获胜。

解决方案:我将 ?allowMultiQueries=true 添加到连接语句中。这使我的代码按原样工作。

最佳答案

@barmar 提出了一个很好的解决方案:

    public static int getRank(UUID uuid) throws SQLException {
checkConnection();
PreparedStatement s1 = con.prepareStatement(
"SET @rownum := 0;");
s1.execute();
PreparedStatement s = con.prepareStatement(
" SELECT rank FROM ( SELECT @rownum := @rownum + 1 AS rank, wins, uuid FROM `SKYWARS` ORDER BY wins DESC ) as rank WHERE uuid=?");
s.setString(1, uuid.toString());
if (!s.execute()) {
System.out.println(123);
} else {
ResultSet r = s.executeQuery();
r.next();
return r.getInt(1);
}
return 0;
}

SET 语句可以被拆分。

关于java - 如何从我的查询中获取结果? (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51526868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com