Android SQLite資料庫建立和使用實戰(二)

來源:互聯網
上載者:User

這篇就不實戰鳥。有些資源還是蠻好的。曬出來和大家分享個連結啥的,網路牛人前輩總是能給我們後輩創造福利,致敬!!!致青春!!!哈哈!關於SQL資料庫從基礎概念到需微深入的理解描述我從網路發現了一個好網站比課本講的都好,遂與眾人分享,PS:致謝這個網站,致敬!!

SQL教程:W3School

同時附上我早期開啟學霸模式學習SQL語句的筆記photo一張(ps:鄙人不是電腦科班出生,木有學過這些玩意,物件導向也是工作需要在公司才學的。傷不起啊)。


Android資料庫基本操作前面Android SQLite資料庫建立和使用實戰(一)博文已經附上源碼了,資源也有工程。不多解釋,算是一個標準模板吧。接下來說說Android裡面這幾個類。

先來整SQLiteOpenHelper類吧,如片來自官方:



接著看下SQLiteDatabase吧,也是來自官方:


方法不了,用時自己去找。主要施工下面對比描述用:

通過圖可以看出類的一些性質等。如下:

使用SQLiteOpenHelper對資料庫進行版本管理

如果應用使用到了SQLite資料庫,我們必須在使用者初次使用軟體時建立出應用使用到的資料庫表結構及添加一些初始化記錄,另外在軟體升級的時候,也需要對資料表結構進行更新。如何?在使用者初次使用或升級軟體時自動在使用者的手機上建立出應用需要的資料庫表呢?在Android系統,為我們提供了一個名為SQLiteOpenHelper的抽象類別,必須繼承它才能使用,它是通過對資料庫版本進行管理來實現前面提出的需求。 為了實現對資料庫版本進行管理,SQLiteOpenHelper類提供了兩個重要的方法,分別是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),前者用於初次使用軟體時產生資料庫表,後者用於升級軟體時更新資料庫表結構。當調用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法擷取用於操作資料庫的SQLiteDatabase執行個體的時候,如果資料庫不存在,Android系統會自動產生一個資料庫,接著調用onCreate()方法,onCreate()方法在初次產生資料庫時才會被調用,在onCreate()方法裡可以產生資料庫表結構及添加一些應用使用到的初始化資料。onUpgrade()方法在資料庫的版本發生變化時會被調用,一般在軟體升級時才需改變版本號碼,而資料庫的版本是由程式員控制的,假設資料庫現在的版本是1,由於業務的變更,修改了資料庫表結構,這時候就需要升級軟體,升級軟體時希望更新使用者手機裡的資料庫表結構,為了實現這一目的,可以把原來的資料庫版本設定為2並且在 onUpgrade()方法裡面實現表結構的更新。當軟體的版本升級次數比較多,這時在onUpgrade()方法裡面可以根據原版號和目標版本號碼進行判斷,然後作出相應的表結構及資料更新。getWritableDatabase()和 getReadableDatabase()方法都可以擷取一個用於操作資料庫的SQLiteDatabase執行個體。但 getWritableDatabase() 方法以讀寫方式開啟資料庫,一旦資料庫的磁碟空間滿了,資料庫就只能讀而不能寫,倘若使用getWritableDatabase()開啟資料庫就會出錯。getReadableDatabase()方法先以讀寫方式開啟資料庫,如果資料庫的磁碟空間滿了,就會開啟失敗,當開啟失敗後會繼續嘗試以唯讀方式開啟資料庫。

使用SQLiteDatabase操作SQLite資料庫

該類封裝了一些操作資料庫的API,使用該類可以完成對資料進行添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(這些操作簡稱為CRUD)。對SQLiteDatabase的學習,我們應該重點掌握execSQL()和rawQuery()方法。execSQL()方法可以執行insert、delete、update和CREATE TABLE之類有更改行為的SQL語句; rawQuery()方法用於執行select語句。

PS:對於Cursor類沒得解釋,自己琢磨,提示下,和Map比較像,key-value形式。




相關文章

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.