Создание локальной БД в приложении для Android - PullRequest
1 голос
/ 01 марта 2012

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

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

Ответы [ 3 ]

4 голосов
/ 01 марта 2012

Это создаст базу данных только в первый раз.После этого вы можете использовать объект этого класса 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

2 голосов
/ 01 марта 2012

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

0 голосов
/ 01 марта 2012

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 в вашем коде.Затем вы можете записатьDB.insert () или readableDB.query (), чтобы положить и получить материал из вашей БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...