Eclipseから自分の携帯に新しいバージョンのアプリケーションを送信するたびに私のアプリケーションのデータベースを消去して再作成したいと考えています(私はデータベースを頻繁に開発して変更しています)。これを行う最も簡単な方法は何ですか?Android:sqliteデータベースを取り除く
1
A
答えて
0
これがライブになってからしたくない場合は、毎回アプリケーションマネージャからデータを消去するだけです。また、あなたは別のデータベースのバージョン番号を作り、ONUPGRADEを破壊していると私は私のコードでは、この1 :)変更スーパー(コンテキスト、DBNAME、ヌル、<データベースのバージョンを使用してDB
private static final String DATABASE_NAME = "MyDbName";
private static final int DATABASE_VERSION = 6;
private static class DbOpenHelper extends SQLiteOpenHelper{
public DbOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
onUpgrade(this.getWritableDatabase(), 0, 0);
//
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TableHelper1.CREATE_TABLE_QUERY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+ TableHelper1.TABLE_NAME);
onCreate(db);
}
}
0
Eclipseでは、左側の[Debug Configurations]、[Android Application]の順に進みます。使用しているデバッグ構成を選択し、[ターゲット]タブを選択します。
下部には、「ユーザーデータを消去する」というチェックボックスが表示されます。
これをチェックすると、シミュレータを起動するたびに、アプリケーションに関連するデータ(SQLiteデータベースを含む)が消去されます。
アプリケーションは、SQLiteOpenHelperのonCreate()を呼び出し、データベースが再作成されます。
+0
エミュレータを再起動する必要があるので、これは好ましくありません。バージョンの更新よりも時間がかかります。また、エミュレータではなく電話でのデバッグには適用されません。 – aha
2
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, dbName, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE USERS (username TEXT, password TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS USERS");
onCreate(db);
}
を再作成することができますnumber>); onUpgradeメソッドを実行します。
関連する問題
- 1. Android:SQLiteデータベースのチェックボックスを保存
- 2. Android:SQLite間違ったデータベースを使用
- 3. rails sqliteデータベースに重複したエントリを取り除く
- 4. render_to_stringマークアップを取り除く
- 5. HTMLAgilityPack htmlを取り除く
- 6. ダブレットを取り除く
- 7. アトムリンターを取り除く
- 8. CA2202を取り除く
- 9. Android:SQLiteデータベースにタイムスタンプを追加する方法を教えてください。
- 10. regex php:「取り除く[リンク1]取り除く[リンク2] ...取り除く」問題があるときに「取り除く」NO [リンク]
- 11. Android:Sqlite ListView
- 12. Android:SQLite - insertWithOnConflict
- 13. Hibernateはデータベースから子を取り除くことができません
- 14. 原子を取り除くスキーム機能?
- 15. DatePickerからtextinputを取り除く
- 16. Circosのヒストグラムグリッドを取り除く方法
- 17. Pythonのlxmlでインラインタグを取り除く
- 18. Railsでキャッチオールルートを取り除く手法
- 19. 後続出力を取り除く
- 20. 座標からオブジェクトを取り除く
- 21. postgresqlのノイズを取り除く方法
- 22. displaytagランタイムエラーを取り除く方法
- 23. iPad/iPhoneでCSSマージンを取り除く
- 24. 数学的なランダムを取り除く
- 25. データとアライリストのループを取り除く
- 26. cPanelのデフォルトページを取り除く
- 27. Android:float - 末尾のゼロを取り除く
- 28. テキストファイルからデータを取り除く
- 29. "-------------"/outliningを取り除くVisual Studio 2010の
- 30. RecyclerViewでロングスクロールを取り除く方法
アップグレード機能では、どのような方法が最適ですか?すべてのテーブルを削除してから、onCreate関数を呼び出します。 – tjb
通常、データベースのバージョンを指定するSQLiteOpenHelperのフィールドがあり、それをコンストラクタに渡します。public SQLiteOpenHelper(コンテキストコンテキスト、String名、SQLiteDatabase.CursorFactoryファクトリ、intバージョン) dbを置き換える準備ができたら、バージョンを増やしてください。 – aha
Pyrodante、私の編集を見直して受け入れてください。これにより、再起動するたびにデータベースが更新されます。クリーンインストールで残念ながら作成され、2回破棄されます – tjb