有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在SQLite数据库Android SDK中搜索特定字符串

我在Android SDK中使用SQLite数据库,我知道这是一个非常简单的问题,但我有以下功能。我试图搜索用户名是否在SQL数据库中,但我想不出如何构造查询

如果字符串“user”在表“ACCOUNT\u table”中,那么搜索的正确方法是什么

public boolean isUser(String user){
        SQLiteDatabase db = this.getReadableDatabase();
        String queryString = "SELECT " + COLUMN_USERNAME + " FROM " + ACCOUNT_TABLE + " WHERE " (???);

        db.close();
        /*if(found in database) 
            return true;
        else 
            return false;*/
    }

共 (2) 个答案

  1. # 1 楼答案

    请尝试以下查询:

    String queryString=“从“+ACCOUNT\u TABLE+”中选择“+COLUMN\u USERNAME+”,其中COLUMN\u USERNAME类似“%”+users+“%”

    这里COLUMN_USERNAME是你的database columnUsers是要搜索的string

  2. # 2 楼答案

    正确的方法是使用rawQuery()方法,该方法使用两个参数:

    1. sql SELECT语句,其中包含要传递的参数的?占位符
    2. 一个String数组,包含sql语句参数的所有值,按它们在 声明

    rawQuery()返回一个Cursor,您可以检查它是否包含任何行,如果包含行,这意味着您搜索的user存在于表中:

    public boolean isUser(String user) {
        SQLiteDatabase db = this.getReadableDatabase();
        String queryString = "SELECT 1 FROM " + ACCOUNT_TABLE + " WHERE " + COLUMN_USERNAME + " = ?";
        Cursor c = db.rawQuery(queryString, new String[]{user});
        boolean result = c.getCount() > 0;
        c.close();
        db.close();
        return result;
    }