Android SQL 游标
Posted
技术标签:
【中文标题】Android SQL 游标【英文标题】:Android SQL Cursor 【发布时间】:2021-11-06 05:03:46 【问题描述】:我在 android 上使用 SQLite 数据库,我需要表中的特定值。我有一个DataBaseHelper
课程。
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;
我不知道如何从这个返回的游标中获取所需的值。我是新手,所以请帮助我。
【问题讨论】:
【参考方案1】:函数getRec()
返回一个Cursor
,你可以这样称呼它:
Cursor c = getRec("John");
然后你必须检查游标是否包含任何行,如果有,你可以提取第一行的值:
String rec;
if (c.moveToFirst()) rec = c.getString(0);
c.close();
可以查看变量rec
的值:
null
,则表中未找到'John'
如果不是null
,则变量rec
包含表中rec
列的值。
我假设您希望查询的结果只有 1 行。
如果您期望超过 1 行,则使用一个循环来收集列表中返回的所有 rec
s:
ArrayList<String> list = new ArrayList();
while (c.moveToNext())
list.add(c.getString(0));
c.close();
【讨论】:
非常感谢,它按预期工作。我有一个疑问,如果桌子上有两个“约翰”会发生什么?它会得到第一个,对吧?但是如果我想要第二个或第三个我该怎么办? 非常感谢!以上是关于Android SQL 游标的主要内容,如果未能解决你的问题,请参考以下文章