Android: избавиться от базы данных sqlite - PullRequest
1 голос
/ 11 августа 2011

Я хотел бы стирать и воссоздавать базу данных для моего приложения каждый раз, когда отправляю на телефон новую версию своего приложения из Eclipse (я очень часто занимаюсь разработкой и изменением базы данных). Какой самый простой способ сделать это?

Ответы [ 3 ]

2 голосов
/ 12 августа 2011
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);
}

я использую это в своем коде :) изменить супер (context, dbName, null,);и он будет выполнять метод onUpgrade.

0 голосов
/ 11 августа 2011

Если это то, что вы не хотите делать, когда оно будет запущено, вы можете просто очищать данные из вашего менеджера приложений каждый раз. Кроме того, вы можете изменить номер версии базы данных, а onUpgrade уничтожить и воссоздать БД

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 голосов
/ 11 августа 2011

В Eclipse перейдите в Конфигурации отладки, затем в Android-приложение слева. Выберите конфигурацию отладки, которую вы используете, и затем выберите вкладку Target.

Внизу вы увидите флажок «Wipe User Data».

Если вы проверите это, каждый раз, когда вы запускаете симулятор, данные, связанные с вашим приложением (включая базу данных SQLite), будут стираться.

Затем ваше приложение вызовет onCreate () для вашего SQLiteOpenHelper, и ваша база данных будет воссоздана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...