Использование явных конструкций where
Теперь, когда вы уже знаете, как использовать URI для передачи конструкции where, рассмотрим другой метод, где Android позволяет передать список явных столбцов и соответствующих им значений в виде конструкции where. Для этого еще раз посмотрим на метод managedQuery из класса Activity, который был задействован в листинге 4.4. Вот его сигнатура:
public final Cursor managedQuery(Uri uri,
String[] projection,
String selection,
String[] selectionArgs,
String sortOrder)
Обратите внимание на аргумент по имени selection типа String. Строка selection содержит фильтр (точнее — конструкцию where), который объявляет, какие строки возвращать, в виде SQL-конструкции where (но без слова WHERE). Если данный аргумент содержит null, для указанного URI возвращаются все строки. В строку selection можно включить фрагмент ?s, который заменяется значениями из selectionArgs в том порядке, в каком они указаны в выборке. Значения будут представлены в виде String.
Из-за наличия двух способов указания конструкции where возникают вопросы, каким образом поставщик использует эти конструкции where, и какое из них главнее при указании обоих.
Например, можно запросить заметку с идентификатором 23 с помощью одного из следующих двух методов:
// Метод URI.
managedQuery("content://com.google.provider.NotePad/notes/23"
,null
,null
,null
,null);
или
// Явная конструкция where.
managedQuery("content://com.google.provider.NotePad/notes"
,null
,"_id=?"
,new String[] {23}
,null);
По соглашению конструкции where передаются по возможности через URI, а явный вариант применяется только в особых случаях.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.