检查数据库中是否存在行,以及 return 布尔值
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 始终 returns 为真,无论该行是否存在。
简单查询更好:
SELECT 1 FROM currency WHERE name=%s LIMIT 1
这将 return 如果存在则为 1 行,如果不存在则为 0 行。
也使用预处理语句来避免 SQL 注入。
我有这个函数,它接受一个名称并在数据库中检查是否存在具有该名称的行。但是,我不知道如何确定该行是否存在。
我现在的代码是
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 始终 returns 为真,无论该行是否存在。
简单查询更好:
SELECT 1 FROM currency WHERE name=%s LIMIT 1
这将 return 如果存在则为 1 行,如果不存在则为 0 行。
也使用预处理语句来避免 SQL 注入。