首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从查询中获得结果?(MySQL)

如何从查询中获得结果?(MySQL)
EN

Stack Overflow用户
提问于 2018-07-26 04:06:04
回答 1查看 64关注 0票数 0

我在给玩家排名,我需要把结果放到Java里。

我的代码是

代码语言:javascript
复制
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工作台中,它返回网格中的值rank和wins。

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

EN

回答 1

Stack Overflow用户

发布于 2018-07-26 05:24:12

@barmar建议了一个很好的解决方案:

代码语言:javascript
复制
    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语句可以被拆分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51526868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档