Создание локальной БД в приложении для Android

1

На основе http://developer.android.com/guide/topics/data/data-storage.html#db кажется, что мне понадобится другой файл класса Java (который я сделал), но теперь я столкнулся с довольно печальная проблема: я не уверен, как с этим справиться.

Как бы я назвал это в своем основном действии, и только он создаст базу данных один раз или попытается повторно создать базу данных каждый раз, когда она будет работать?

  • 0
    Ответ от Ракши может быть довольно коротким, но он абсолютно правильный. SQLiteOpenHelper (и любой SQLiteOpenHelper вами класс, который его расширяет) сначала проверит, существует ли БД. Если он не существует, он будет создан. После этого, пока «версия» базы данных остается неизменной, она будет продолжать просто использовать базу данных, которая была первоначально создана. Если вы onUpgrade другой (более высокий) номер версии базы данных, будет вызываться onUpgrade , позволяющий динамически обновлять БД (создавать / удалять таблицы, добавлять новые поля в таблицы и т. Д.).
Теги:
sqlite3

3 ответа

4
Лучший ответ

Это будет "создавать" базу данных только в первый раз. После этого вы можете использовать объект этого класса SQLiteOpenHelper для доступа к этой базе данных. Обратите внимание, что вам не нужно беспокоиться о воссоздании базы данных, android позаботится об этом, если вы используете подход SQLiteOpenHelper.

Взяв пример хранения данных вперед, вы должны создать его объект, а затем использовать метод getWriteableDatabase, чтобы получить доступ на запись в базу данных

DictionaryOpenHelper myDictionary;
myDictionary = new DictionaryOpenHelper(this);
SQLiteDatabase db = myDictionary.getWritableDatabase();

//to enter values in the db
ContentValues values = new ContentValues();
values.put("name","Rhyno");
db.insert(nameOfTable, null, values);

Более подробный пример приведен в этом уроке: http://marakana.com/forums/android/examples/55.html

  • 0
    Спасибо, это именно то, что я искал.
  • 0
    Рад, что смог помочь :)
2

он создается только в том случае, если он существует.

0

SQLiteOpenHelper имеет 2 очень полезных метода: onCreate() и onUpgrade().

  1. onCreate() вызывается только в том случае, если база данных не существует.
  2. onUpgrade() вызывается только в том случае, если DATABASE_VERSION (передается в конструктор при создании экземпляра SQLiteOpenHelper) увеличивается.

Также есть onDowngrade() и onOpen(), когда DATABASE_VERSION уменьшается или база данных открывается, соответственно.

onCreate() - это то, где вы хотите сделать свой db.execSQL("CREATE TABLE...."), чтобы сначала создать свои таблицы.

Затем вы можете использовать экземпляр SQLiteOpenHandler для выполнения dbHandler.getWritableDatabase() и dbHandler.getReadableDatabase(), которые возвращают читаемый или записываемый объект SQLiteDatabase в ваш код. Затем вы можете writeableDb.insert() или readableDB.query(), чтобы поместить и получить материал из своего db.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню