【问题标题】:ResultSet in JavaJava中的结果集
【发布时间】:2016-04-13 05:28:49
【问题描述】:

我需要帮助为我创建的方法创建布尔检查。如果他们有指定的 EnumRank,我基本上希望它返回 true,但它不起作用。有什么建议吗?

编辑:两个值都存储在 VARCHARS 中

代码:

    public boolean hasRank(Player player, EnumRanks rank){
    if (!MySql.checkConnection()){
        return false;
    }
    try{
        String query = "SELECT RANK FROM `user_ranks` WHERE UUID= '" + player.getUniqueId() + "';";
        PreparedStatement statement = MySql.getConnection().prepareStatement(query);
        ResultSet result = statement.executeQuery();
        result.next();
        return result.getBoolean(rank.getSQLName());
        //return true - So I can use this method
    }
    catch (SQLException e){
        //Nothing
    }
    return false;
}

【问题讨论】:

    标签: java mysql boolean resultset


    【解决方案1】:

    将排名添加到查询中,并且您正在使用PreparedStatement,因此请使用绑定参数。您可以使用result.next() 检查查询是否返回结果,您应该使用 finally 块关闭您的StatementResultSet(和Connection)。不要默默吞下Exception(s)。类似的东西

    public boolean hasRank(Player player, EnumRanks rank) {
        if (!MySql.checkConnection()) {
            return false;
        }
        Connection conn = null;
        PreparedStatement statement = null;
        ResultSet result = null;
        String query = "SELECT RANK FROM `user_ranks` WHERE UUID=? AND RANK=?";
        try {
            conn = MySql.getConnection();
            statement = conn.prepareStatement(query);
            statement.setString(1, player.getUniqueId());
            statement.setString(2, rank.getSQLName());
            result = statement.executeQuery();
            return result.next();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (result != null) {
                try {
                    result.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 2023-04-05
      • 2011-11-30
      • 2014-02-18
      • 1970-01-01
      • 2015-05-26
      相关资源
      最近更新 更多