Использование явных конструкций where

Использование явных конструкций 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, а явный вариант применяется только в особых случаях.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий