繁体   English   中英

检查数据库中是否存在行,并返回布尔值

[英]Check if row exists in db, and return boolean

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

我现在的代码是

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 总是返回为真,无论该行是否存在。

简单的查询更好:

SELECT 1 FROM currency WHERE name=%s LIMIT 1

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM