Программно стереть данные из базы данных sqlite с использованием библиотеки ormlite
Я бы искал способ стереть все данные из ormlite базы данных или удалить базу данных (а затем воссоздать ее) с помощью ormlite на android.
В это время я могу изменить только DATABASE_VERSION DatabaseHelper.
Но мне нужно скомпилировать приложение.
Кто-нибудь знает метод для обработки этого случая?
Ответы
Ответ 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);
Вам нужно будет сохранить ссылку на контекст в вашем помощнике базы данных.