2010-11-19 6 views
2

У меня есть класс DatabaseHelper, который расширяет SQLiteOpenHelper, что является хорошей практикой использования DBHelper для выполнения операций по извлечению данных?Что такое хорошая практика использования DBHelper (SQLite) для Android-приложений

В моем классе DatabaseHelper у меня есть способ помочь мне получить результаты запроса типа «Выбрать * ОТ .....». Результаты будут использованы многими другими классами.

Пример:

Cursor getAllWhitelist(){ 
    SQLite Database db=this.getWritableDatabase(); 
    Cursor cur = db.rawQuery("Select * from WhiteList"); 
    return cur; 
} 

Должен ли я возвращать курсор на данном этапе? Рекомендуется ли это? Или я должен возвращать ArrayList или подобные вещи?

Как вы, ребята, это делаете?

ответ

1

Что я использовал это, хранится значение в каком-то объекте или в каком-то ArrayList объекта и возврата, что
см это link

Благодаря @Austyn Махони, как он сказал, мы можем вернуть курсор, если мы используем startManagingCursor , Этот метод позволяет активности позаботиться о том, чтобы управлять жизненным циклом данного Курсора для вас на основе жизненного цикла деятельности.

+0

Возврат курсора в порядке, вам просто нужно убедиться, что вы добавили 'startManagingCursor (cursor)' вызов в свою активность после того, как курсор будет передан обратно на него. Вам понадобится курсор, который не закрыт, если вы хотите использовать его в «SimpleCursorAdapter». –

+0

Спасибо @Austyn Mahoney за эту информацию. Я отредактировал свой ответ. –

0

Хорошей практикой является создание списка результатов и закрытие курсора и базы данных для минимизации времени соединения. В противном случае вы можете закрыть свое соединение из-за некоторых ограничений. Это будет плохо для вашего списка результатов.

+0

Было бы исключением, если вам нужен курсор для адаптера ListView? Пример Google демонстрирует использование курсора для этого. – Thomas

+0

Дело в том, что курсор не нужен для подключения к базе данных. Курсор - это общий интерфейс для получения некоторых данных от любого поставщика контента. –

+0

@ Темус вам понравился бы фрагмент этого примера? –

Смежные вопросы