Android中SQLite數(shù)據(jù)庫學(xué)習(xí)筆記

簡介

Android會將我們的持久性數(shù)據(jù)存儲在文件系統(tǒng)中,為了簡化我們開發(fā)應(yīng)用時所需要寫入的類容,Android提供了多個結(jié)構(gòu)化的存儲選項:SharedPreferences、SQLite Database等。

SharedPreferences類會提供通用的框架,使我們可以保存和檢索原始數(shù)據(jù)類型,如布爾型(boolean)、浮點型(float)、整型(int)、長整型(long)和字符串(string)的持久性鍵值對。

但事實上,SharedPreferences的這種簡單的鍵值對框架無法提供足夠的靈活性,因此Android還提供了SQLite。

SQLite是一種輕量級關(guān)系型數(shù)據(jù)庫,通過寫入和查詢語句,以及SQLite變體的結(jié)構(gòu)化查詢語言(SQL)來與SQLite數(shù)據(jù)庫互動。

Android提供了SQLiteOpenHelper幫助類來讓我們更加方便地管理數(shù)據(jù)庫,對數(shù)據(jù)庫進(jìn)行創(chuàng)建、更新等操作。

SQLiteOpenHelper是一個抽象類,所以我們需要創(chuàng)建一個自己地抽象類。SQLiteOpenHelper類中有兩個抽象方法:onCreate()和onUpgrade(),我們需要在自己的幫助類中重寫這兩個方法。

SQLiteOpenHelper中還有兩個非常重要的實例方法:getReadableDatabase()和getWritableDatabase()。這兩個方法都可以創(chuàng)建或打開一個現(xiàn)有的數(shù)據(jù)庫,并返回一個可對數(shù)據(jù)庫進(jìn)行讀寫操作的對象。

PS:當(dāng)數(shù)據(jù)庫不可寫入的時候,getReadableDatabase()方法返回的對象將以只讀的方式打開數(shù)據(jù)庫,而getWritableDatabase()則會出現(xiàn)異常。

SQLiteOpenHelper中有兩個構(gòu)造方法可供重寫

SQLiteOpenHelper(Contextcontext,Stringname, SQLiteDatabase.CursorFactory factory, int version)

SQLiteOpenHelper(Contextcontext,Stringname, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler)

通常使用參數(shù)少的構(gòu)造方法。

第一個參數(shù)是Context第二個參數(shù)是數(shù)據(jù)庫名,創(chuàng)建數(shù)據(jù)庫時使用的就是這里指定的名稱。

第三個參數(shù)允許我們在查詢數(shù)據(jù)時返回一個自定義的Cursor,一般傳入null。

第四個參數(shù)表示當(dāng)前數(shù)據(jù)庫的版本號,用于對數(shù)據(jù)庫進(jìn)行升級操作。

構(gòu)建出SQLiteOpenHelper實例后,再調(diào)用getReadableDatabase()或getWritableDatabase()方法就能夠創(chuàng)建數(shù)據(jù)庫了。

以上參考自:郭霖大神的《第一行代碼》

筆者博客:Vinfai

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容