2011-11-25 41 views
0

我正在開發我的android應用程序中的sqlite數據庫。我需要它可以輕鬆地增長,所以我需要在未來的升級,我可以改變數據庫,等等。Android的sqlite做什麼?

我想知道如果當我更改sqlite創建方法中的數據庫版本時,它會創建一個新文件的數據庫。如果是這樣,那麼在onUpgrade中,我應該遷移所有數據,不是嗎?

總之,onCreate究竟做了什麼?它是否創建數據庫的新文件?還是它修改了實際的一個?

我在問這是因爲我不想讓onCreate創建一個新文件...我只想修改實際的數據庫。

謝謝

回答

0

我假設你指的是SQLiteOpenHelper中的OnCreate方法。當您請求可寫或可讀的數據庫並且需要創建數據庫時,它會被調用。我們不直接調用oncreate方法。所以如果一個數據庫已經存在,並且我們要求一個可寫或可讀的數據庫---沒有創建新的數據庫。

請參考以下鏈接瞭解更多信息

http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

http://developer.android.com/resources/tutorials/notepad/index.html

+0

是的,我知道。但我問,每次調用方法時,onCreate方法是否創建一個新的DataBase文件...因爲我不想在文件之間傳輸數據。我想修改一個唯一的數據庫文件。 – FrioneL

2

的OnCreate只調用當一個數據庫需要在第一次被創建。

如果數據庫已經存在且版本號不匹配,則會調用OnUpgrade。您應該使用OnUpgrade將數據庫從舊版本更改爲新版本。

+0

然後,爲什麼我只看到教程中onUpgrade將舊數據庫的所有數據傳輸到臨時表,然後刪除舊錶?我不明白它...不onUpgrade創建一個新的數據庫? – FrioneL

+0

如果你不相信我,請閱讀說明文件。 – Kuffs

相關問題