qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Android中數據庫升級onUpgrade方法說明

          Andoird的SQLiteOpenHelper類中有一個onUpgrade方法。幫助文檔中只是說當數據庫升級時該方法被觸發。經過實踐,解決了我一連串的疑問:
            1. 幫助文檔里說的“數據庫升級”是指什么?
            你開發了一個程序,當前是1.0版本。該程序用到了數據庫。到1.1版本時,你在數據庫的某個表中增加了一個字段。那么軟件1.0版本用的數據庫在軟件1.1版本就要被升級了。
            2. 數據庫升級應該注意什么?
            軟件的1.0版本升級到1.1版本時,老的數據不能丟。那么在1.1版本的程序中就要有地方能夠檢測出來新的軟件版本與老的數據庫不兼容,并且能夠 有辦法把1.0軟件的數據庫升級到1.1軟件能夠使用的數據庫。換句話說,要在1.0軟件的數據庫的那個表中增加那個字段,并賦予這個字段默認值。
            3. 程序如何知道數據庫需要升級?
            SQLiteOpenHelper類的構造函數有一個參數是int version,它的意思就是指數據庫版本號。比如在軟件1.0版本中,我們使用SQLiteOpenHelper訪問數據庫時,該參數為1,那么數據庫版本號1就會寫在我們的數據庫中。
            到了1.1版本,我們的數據庫需要發生變化,那么我們1.1版本的程序中就要使用一個大于1的整數來構造SQLiteOpenHelper類,用于訪問新的數據庫,比如2。
            當我們的1.1新程序讀取1.0版本的老數據庫時,就發現老數據庫里存儲的數據庫版本是1,而我們新程序訪問它時填的版本號為2,系統就知道數據庫需要升級。
            4. 何時觸發數據庫升級?如何升級?
            當系統在構造SQLiteOpenHelper類的對象時,如果發現版本號不一樣,就會自動調用onUpgrade函數,讓你在這里對數據庫進行升級。根據上述場景,在這個函數中把老版本數據庫的相應表中增加字段,并給每條記錄增加默認值即可。
            新版本號和老版本號都會作為onUpgrade函數的參數傳進來,便于開發者知道數據庫應該從哪個版本升級到哪個版本。
            升級完成后,數據庫會自動存儲最新的版本號為當前數據庫版本號。

          posted on 2014-09-28 10:44 順其自然EVO 閱讀(1886) 評論(0)  編輯  收藏 所屬分類: android

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 天祝| 崇阳县| 双柏县| 岳西县| 滦平县| 朝阳县| 沙坪坝区| 中山市| 万宁市| 巴马| 行唐县| 屏东市| 徐水县| 临漳县| 昌黎县| 霸州市| 保亭| 叙永县| 邻水| 蛟河市| 民和| 文昌市| 榆社县| 得荣县| 永泰县| 鹿泉市| 富顺县| 涟水县| 礼泉县| 全椒县| 都匀市| 丹东市| 阳朔县| 如皋市| 安乡县| 南华县| 福泉市| 军事| 航空| 鲜城| 策勒县|