【问题标题】:Check if row exists in db, and return boolean检查数据库中是否存在行,并返回布尔值
【发布时间】:2020-11-11 23:53:17
【问题描述】:

我有这个函数,它接受一个名称并在数据库中检查是否存在具有该名称的行。但是,我不知道如何确定该行是否存在。

我现在的代码是

public static boolean rowExists(String player) throws SQLException {
    String sql = "SELECT EXISTS(SELECT * FROM currency WHERE name='"+player+"');";
    Bukkit.broadcastMessage(player);
    Statement stmt = con.createStatement();
    
    ResultSet up = stmt.executeQuery(sql);
    boolean nut = up.next();
    Bukkit.broadcastMessage("nut: " + nut + "  ");

    return nut;
}

nut 是布尔值,其中 true 表示条目存在,而 false 则不存在。 目前 nut 始终返回 true,无论该行是否存在。

【问题讨论】:

    标签: java mysql row exists


    【解决方案1】:

    简单的查询更好:

    SELECT 1 FROM currency WHERE name=%s LIMIT 1
    

    如果存在则返回单行 1,如果不存在则返回 0 行。

    还要使用准备好的语句来避免 SQL 注入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2012-06-18
      相关资源
      最近更新 更多