查询数据库
所有的数据库查询都返回一个结果集的游标。这种方式使得Android通过在需要的时候检索和释放行和列的值来更加有效地管理资源。
执行一个数据库的查询,使用query方法,传入以下参数:
❑ 一个可选的布尔值来指定结果集中每一行是否是独一无二的。
❑ 需要查询的表的名字
❑ 一个字符串数组,标明在结果集中包含的列项。
❑ 一个where语句来定义要返回的行。你可以包含?通配符,它会被selectionArgs参数中的值替换。
❑ 一个selectionArgs参数的字符串数组,将用于替换where语句中的?。
❑ groupBy语句用来定义返回的行如何分成相应的组别。
❑ 当你指定了groupBy语句时,having过滤器用来定义包含哪些组别。
❑ 一个字符串描述返回的行的顺序。
❑ 一个可选的字符串定义返回的行数的限制。
接下来的代码片段显示了返回一个特定表中的一些和全部行:
// Return all rows for columns one and three, no duplicates
String[] result_columns = new String[] {KEY_ID, KEY_COL1, KEY_COL3};
Cursor allRows = myDatabase.query(true, DATABASE_TABLE, result_columns,
null, null, null, null, null, null);
// Return all columns for rows where column 3 equals a set value
// and the rows are ordered by column 5.
String where = KEY_COL3 + “=” + requiredValue;
String order = KEY_COL5;
Cursor myResult = myDatabase.query(DATABASE_TABLE, null, where,
null, null, null, order);
实际上,在适配器类中抽象这些查询命令来简化数据访问往往是有用的。