Подтвердить что ты не робот

Программно стереть данные из базы данных sqlite с использованием библиотеки ormlite

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

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

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

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

4b9b3361

Ответ 1

@Julia ответ будет работать хорошо. ORMLite также поддерживает вызов TableUtils.clearTable() который удаляет все строки из таблицы:

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

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

Edit:

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

Ответ 2

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

context.deleteDatabase(DATABASE_NAME);

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

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

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

.

Ответ 3

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

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

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

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

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