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. mongoデータベースからシャードを取り除く
- 3. Android:SQLIteデータベースのレコード行をフラグメントから削除する
- 4. Android:Sqliteデータベースを開くことができません
- 5. Android:SQLite間違ったデータベースを使用
- 6. Android:SQLiteデータベースにタイムスタンプを追加する方法を教えてください。
- 7. Android:Sqlite ListView
- 8. Android:SQLite - insertWithOnConflict
- 9. データベースの文字列から/ nを取り除くこと
- 10. BLOBデータベースからコンボボックスの重複アイテムを取り除く
- 11. rails sqliteデータベースに重複したエントリを取り除く
- 12. ダブレットを取り除く
- 13. HTMLAgilityPack htmlを取り除く
- 14. CA2202を取り除く
- 15. render_to_stringマークアップを取り除く
- 16. ボタンマージンを取り除くアンドロイド
- 17. アトムリンターを取り除く
- 18. regex php:「取り除く[リンク1]取り除く[リンク2] ...取り除く」問題があるときに「取り除く」NO [リンク]
- 19. Android:sqlite join result
- 20. Android:SQLiteデータベース(複数の列)からListViewを読み込む
- 21. ブート-CLJは:取り除く
- 22. Android:SQLiteデータベースのカーソルでエラーが発生しました
- 23. Android:Sqliteは、ユーザーが保存した後にデータベースに挿入する
- 24. Android:SQLiteのカスタム照合
- 25. Android:SQLite FTS3は次/前の行をフェッチするときに遅くなります
- 26. Hibernateはデータベースから子を取り除くことができません
- 27. 重複を取り除き、ランダムな結果を取り除くSQLクエリ
- 28. Spring&Tiles - tiles.xmlを取り除く
- 29. アイソトープコンテナからアイテムを取り除く
- 30. guzzle/guzzleパッケージを取り除くには?
アップグレード機能では、どのような方法が最適ですか?すべてのテーブルを削除してから、onCreate関数を呼び出します。 – tjb
通常、データベースのバージョンを指定するSQLiteOpenHelperのフィールドがあり、それをコンストラクタに渡します。public SQLiteOpenHelper(コンテキストコンテキスト、String名、SQLiteDatabase.CursorFactoryファクトリ、intバージョン) dbを置き換える準備ができたら、バージョンを増やしてください。 – aha
Pyrodante、私の編集を見直して受け入れてください。これにより、再起動するたびにデータベースが更新されます。クリーンインストールで残念ながら作成され、2回破棄されます – tjb