Главная » Разработка для Android » Знакомство с классом SQLiteOpenHelper

0

SQLiteOpenHelper — абстрактный класс, предназначенный для реализа- ции наиболее эффективной модели, с помощью которой можно создавать, открывать и обновлять базы данных. При реализации этого вспомогательно- го класса от вас скрывается логика, на основе которой принимается решение о создании или обновлении базы данных перед ее открытием.

В листинге  7.1 показано,  как наследовать  класс SQLiteOpenHelper, переопределив конструктор,  а также методы onCreate и onUpgrade, чтобы контролировать создание новой базы данных и обновление ее до последней версии соответственно.

ПРИМЕЧАНИЕ

В предыдущем примере обработчик onUpgrade просто удалял суще- ствующую таблицу и создавал новую. На практике лучшее решение — перенос существующих данных в новую таблицу.

Чтобы использовать реализацию вспомогательного класса, создайте новый экземпляр, передайте его конструктору контекст, имя базы данных, текущую версию и объект класса CursorFactory (если вы его используете).

Вызовите  метод getReadableDatabase или getWritableDatabase, чтобы открыть  и вернуть экземпляр базы данных, с которой  мы имеем дело (он будет доступен как для чтения, так и для записи).

Вызов метода getWritableDatabase может завершиться неудачно из-за про- блем с полномочиями или нехваткой места на диске, поэтому лучше преду- смотреть откат к методу getReadableDatabase, как показано в листинге 7.2.

Листинг 7.2. Использование SQLiteOpenHelper для доступа к базе данных

dbHelper = new myDbHelper(context, DATABASE_NAME, null, DATABASE_ VERSION);

SQLiteDatabase db;

try {

db = dbHelper.getWritableDatabase();

}

catch (SQLiteException ex){

db = dbHelper.getReadableDatabase();

}

Внутри скрыта следующая логика: если база данных не существует, вспомогательный класс вызывает  свой обработчик  onCreate; если версия базы данных изменилась, вызовется обработчик onUpgrade. В любом случае вызов методов getWritableDatabase/getReadableDatabase, в зависимости от ситуации, вернет существующую, только что созданную или обновленную базу данных.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии