OrmLiteライブラリを使用してSQLiteデータベースのデータをプログラム的に消去する
質問
OrmLiteデータベースのすべてのデータを消去したり、Android上のOrmLiteでデータベースを削除する(および再作成する)方法を探しています。
この時点で、データベースヘルパーのデータベース_ versionのみを変更できます。
しかし、アプリケーションをコンパイルする必要があります。
誰かがそのケースを処理する方法を知っていますか?
解決
OrmLiteデータベースのすべてのデータを消去したり、Android上のOrmLiteでデータベースを削除する(および再作成する)方法を探しています。
@ジュリアの答えはうまく機能します。 ormlite また、aをサポートします TableUtils.clearTable()
メソッド呼び出し テーブルからすべての行を削除します:
それはデータベースをクリアしませんが、各テーブルを順番にクリアできます。次のようなもの:
tableutils.cleartable(getConnectionSource()、YourClassheer.class);
編集:
@max4everはそれを指摘しました context.deletedatabase(...) データベースをクリアする他の方法よりもはるかに高速です。ただし、この呼び出しはテーブルの定義を削除します TableUtils.clearTable(...)
スキーマはそのまま残します。
他のヒント
あなたは電話することができます
context.deleteDatabase(DATABASE_NAME);
あなたの中で DatabaseHelper
拡張するクラス OrmLiteSqliteOpenHelper
. context
に渡されます DatabaseHelper
コンストラクターのクラス。
次回データベースが必要になると、再作成され、
@Override
public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)
呼ばれています。
データベースを削除するには、これらのコマンドを使用します。
this.connectionSource.close();
context.deleteDatabase(DATABASE_NAME);
現在のデータベースを再作成/開くには、これらのコマンドを使用します。
SQLiteDatabase db = context.openOrCreateDatabase(DATABASE_NAME, 0, null);
this.connectionSource = new AndroidConnectionSource(db);
データベースヘルパーのコンテキストへの参照を保持する必要があります。