資料庫升級onUpgrade方法說明

來源:互聯網
上載者:User
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函數的參數傳進來,便於開發人員知道資料庫應該從哪個版本升級到哪個版本。

升級完成後,資料庫會自動儲存最新的版本號碼為當前資料庫版本號碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.