从 SQLite 数据库获取字符串并检查是否等于变量不起作用

Getting string from SQLite database and checking if is equal to a variable doesn't work

所以我想做的是将用户名和 GUID 存储在 SQLite 数据库中。当新玩家加入 Bukkit 服务器时,服务器会获取玩家的用户名并生成一个 GUID。服务器获取此 GUID 并将其提供给玩家,以便他进行验证。用户名和 GUID 现在存储在 SQLite 数据库中。如果玩家使用未经验证的 GUID 加入服务器,他将被踢出。所以我需要一种方法来跟踪 GUID 是否经过验证。这就是 SQLite 数据库包含一个名为 'verified' 的整数的原因。如果整数为 0,则 GUID 未验证。如果为 1,则已验证。这是 table 的样子:

CREATE TABLE AUTH (USERNAME CHAR(50) PRIMARY KEY NOT NULL, GUID CHAR(36) NOT NULL, VERIFIED INT NOT NULL)

SQL这个说法对不对并不重要,只要能让你对我的table有一个基本的了解就可以了。

所以我遇到的问题是如果他的 GUID 是 unverified/null.

则踢玩家的代码
// Check whether player has a GUID
if (playerDatabase.hasGUID(player)) {
    // Check whether GUID is verified
    if (playerDatabase.isGUIDVerified(player)) {
        // ...
    }
}

我做了几个测试,发现 hasGUID 布尔值总是 returns 错误。这是 hasGUID

的代码
resultSet = statement.executeQuery("SELECT * FROM AUTH;");

while (resultSet.next()) {
    if (resultSet.getString("USERNAME").equalsIgnoreCase(player.getName())) {
        if (resultSet.getString("GUID") != null) {
            statement.close();
            return true;
        }
    }
}

以上代码包含在 try/catch 语句中。我在这里犯了什么错误吗?

更正您的 SQL 查询 select * from auth where username = username;

 if (rs.next()){
//ResultSet is not empty
 }else {
//ResultSet is  empty
 }