Android SQLite
SQLite使用
一、SQLiteOpenHelper
SQLiteOpenHelper是個抽象類,所以需要實體類去繼承它
提供兩個抽象方法onCreat()和onUpgrade()用來創建和升級數據庫
提供兩個實例方法
getReadableDatabases()和getWritableDatabases(),這兩個方法都可以創建或返回一個可讀寫的數據庫,不同的是當數據庫不可寫入時(如磁盤空間滿),那麽getReadableDatabases()將會以只讀的方式打開數據庫,而getWritableDatabases()則會出現異常,所以平時使用推薦 getReadableDatabases()方法
SQLiteOpenHelper有兩個構造方法(可重寫),一般使用參數少的那個構造方法。
此方法接收4個參數
1.Context
2.數據庫名稱
3.第三個參數允許我們在查詢數據庫的時候返回一個自定義的Cursor,一般直接傳入null,如果需要 傳入一個cursor對象即可,在構造方法中 對應SQLiteDatabases.Cursorfactory cursor
4.傳入一個當前版本號,用於升級數據庫
二、使用SQLite進行增查改刪(CRUD)
1.添加數據
getReadableDatabases()和getWritableDatabases()兩個實例方法會返回一個數據庫實例對象,創建使用ContentValues類型對象用來裝載數據,ContentValues對象提供了put()方法的多個重載,只需在put()方法的參數列表中以("字段名","值")的形式添加即可,然後調用數據庫實例對象的insert()方法來插入數據,insert()方法需要三個參數,第一個是 表名 ,第二個是 用於未指定添加數據的情況下給某些可為空的列自動賦值NULL,一般不需要,直接傳入null, 第三個是 ContentValues對象。如圖↓
2.更新數據
更新數據,系統為我們提供了一個updata()方法,這個方法第一個參數和insert()方法一個 也是表名,第二個參數是 ContentValues對象 , 第三第四個參數是用來約束更新某一行或幾行的數據,不指定 默認更新所有行, 如圖↓
3.刪除數據
刪除數據相比較其他三種方法最為簡單,因為刪除不需要傳ContentValues對象過去,所以系統提供的delete()方法需要三個參數,同樣第一個 還是表名 ,畢竟咱們得知道 咱們要操作的是哪張表嘛,然後第二第三個參數用於約束刪除某一行或幾行,不指定 默認刪除所有行。 如下圖↓↓↓
4.查詢數據
這特麽才是重頭戲,畢竟SQL的全稱是 Structured Query Language(結構化查詢語言),很明顯 查詢才是重中之重啊!!!。
所以 系統提供的query()方法,最短的一個方法重載也需要7的參數??,不過其實 我們平時並用不到這麽復雜的,比如 筆者就選擇了查詢全部,也是所有的查詢操作中最簡單的,這裏就不做過多講解了,用到的時候再去看文檔吧。
PS:需要註意的是 cursor.moveToFirst()方法是 將光標指針移動到第一行數據,因為默認的光標指向的位置是第一行的上一行,以此用來判斷是否有數據。
相類似的的 while()語句中的moveToNext()方法是用來將光標移動至 下一行數據。
還有就是 用完 記得關閉cursor!!! 用完 記得關閉cursor!!! 用完 記得關閉cursor!!! 重要的事情說三遍
Android SQLite