Android SQL 光标

Android SQL Cursor

我在 Android 上使用 SQLite 数据库,我需要来自 table 的特定值。我有一个 DataBaseHelper class.

private static final String TABLE_NAME = "my_task";
private static final String COL1 = "ID";
private static final String COL2 = "name";
private static final String COL3 = "status";
private static final String COL4 = "rec"; 

我必须获取给定 name 的列 rec 的值(它是 0 或 1)。我有这个功能来完成任务:

public Cursor getRec(String task) {
    SQLiteDatabase db = this.getWritableDatabase();

    String q = "SELECT " + COL4 + " FROM " + TABLE_NAME + " WHERE " + COL2 + " = ?";

    Cursor data = db.rawQuery(q, new String[] { task });
    return data;
}

我不知道如何从这个返回的游标中获取所需的值。我是新手,所以请帮助我。

函数 getRec() returns a Cursor 你可以这样调用它:

Cursor c = getRec("John");

然后你必须检查游标是否包含任何行,如果有你可以提取第一行的值:

String rec;
if (c.moveToFirst()) rec = c.getString(0);
c.close();

你可以查看变量的值rec:

  • 如果是 null 那么 'John' 在 table
  • 中找不到
  • 如果它不是 null,则变量 rec 包含 table.
  • 的列 rec 的值

我假设您只希望查询结果为 1 行。

如果您希望超过 1 行,则使用循环收集列表中返回的所有 rec

ArrayList<String> list = new ArrayList();
while (c.moveToNext()) {
    list.add(c.getString(0));
}
c.close();