OrmLiteライブラリを使用してSQLiteデータベースのデータをプログラム的に消去する

StackOverflow https://stackoverflow.com/questions/9308827

  •  25-10-2019
  •  | 
  •  

質問

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);

データベースヘルパーのコンテキストへの参照を保持する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top