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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长子县| 简阳市| 金阳县| 凌海市| 图片| 南宁市| 舟山市| 雷州市| 凤冈县| 张家港市| 郴州市| 九龙县| 祁连县| 曲阳县| 凉城县| 出国| 区。| 红原县| 郸城县| 沂源县| 乌兰察布市| 汉川市| 柳林县| 泽库县| 沂南县| 固阳县| 四会市| 山东省| 天水市| 耒阳市| 新巴尔虎右旗| 临泉县| 宁明县| 时尚| 西乌珠穆沁旗| 清远市| 都江堰市| 双江| 通州市| 滨海县| 阿城市|