Программно стереть данные базы данных sqlite с помощью библиотеки ormlite - PullRequest
14 голосов
/ 16 февраля 2012

Я бы искал способ удалить все данные из базы данных ormlite или удалить базу данных (а затем воссоздать ее) с помощью ormlite на Android.

В настоящее время я могу изменить только DATABASE_VERSION DatabaseHelper.

Но я должен скомпилировать приложение.

Кто-нибудь знает метод для обработки этого случая?

Ответы [ 3 ]

19 голосов
/ 16 февраля 2012

Я бы искал способ стереть все данные из базы данных ormlite или удалить базу данных (а затем воссоздать ее) с помощью ormlite на Android.

@ Ответ Джулии сработаетЧто ж. ORMLite также поддерживает TableUtils.clearTable() вызов метода , который удаляет все строки из таблицы:

Это не очистит базу данных, но вы можете очистить каждую таблицу по очереди,Примерно так:

TableUtils.clearTable (getConnectionSource (), YourClassHere.class);

Редактировать:

@ max4ever указал, что context.deleteDatabase (...) намного быстрее, чем другие способы очистки базы данных.Но этот вызов удалит определения таблиц, в то время как TableUtils.clearTable(...) оставляет схему нетронутой.

5 голосов
/ 16 февраля 2012

Вы можете позвонить

context.deleteDatabase(DATABASE_NAME);

в вашем DatabaseHelper классе, который расширяет OrmLiteSqliteOpenHelper. context передается классу DatabaseHelper в конструкторе.

В следующий раз, когда база данных потребуется, она будет воссоздана и

@Override
public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)

называется.

3 голосов
/ 08 марта 2013

Чтобы удалить базу данных, используйте следующие команды:

this.connectionSource.close();
context.deleteDatabase(DATABASE_NAME);

Чтобы воссоздать / открыть текущую базу данных, используйте следующие команды:

SQLiteDatabase db = context.openOrCreateDatabase(DATABASE_NAME, 0, null);
this.connectionSource = new AndroidConnectionSource(db);

Вам нужно будет сохранить ссылку на контекств вашей базе данных помощник.

...