天天看點

04_資料庫更新onUpgrade&ondowngrade

如果想操作多個資料庫就不要把資料庫的名字寫死了

public MyOpenHelper(Context context, String name){
    //第一個參數上下文
        //第二個參數  資料庫的名字 如果傳入null 就是在記憶體中建立一個資料庫 記憶體中的資料庫在應用退出之後 資料就會丢失
        //如果是聊天記錄之類我真正的想給它存起來,下一次再啟動還想用那你就要給它存儲到一個具體的資料庫裡面。這個名字就一定要傳進來
        //第三個參數 遊标工廠 如果使用系統預設的遊标工廠就傳入null
        //第四個參數  資料庫的版本号 用版本号來控制資料庫的更新和降級 版本号從1開始
        super(context, "itheima.db", null, 1);
        // TODO Auto-generated constructor stub
    }      

把"itheima.db"用String name代替而不是寫死了就可以操作多個資料庫了.如果寫死的話拿到的SQLiteDatabase實際上操作的都是同一個資料庫就是這個itheima.db.當資料庫檔案itheima.db第一次建立的時候,它會走onCreate().一旦我這個資料庫檔案建立起來之後,再去運作這個項目,這個onCreate()就不會走了.因為它隻是當資料庫檔案第一次建立的時候才會執行onCreate().

onCreate()就是當資料庫檔案第一次建立的時候被執行。onCreate()做表結構的初始化也可以丢一些初始化的資料。

當資料庫更新的時候就會走這個onUpgrade

04_資料庫更新onUpgrade&ondowngrade

資料庫更新的SQL語句什麼時候會被調用?資料庫更新就是版本号增加的時候。

super(context, "itheima.db", null, 2);      
@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {