標籤:android sqlite sqliteopenhelper sqlitedatabase cursor
SQLite -- 嵌入式關係型資料庫1,SQLite的資料類型:Typelessness(無類型)1,可以儲存任何類型的資料到表的任意列中2,支援常見的類型如: NULL, VARCHAR, TEXT, INTEGER, BLOB, CLOB等3,唯一的例外:integer primary key 此欄位只能儲存64位整數,即當主鍵被定義為integer時只能儲存64位整數注意:SQLite資料庫中列一旦建立不能修改,如果一定要修改,需要重新建立表,拷貝資料2,Android提供了一個SQLiteOpenHelper抽象類別,該類用於管理資料庫的版本,常用的3個方法:onCreate資料庫建立時執行(第一次串連資料庫,擷取資料庫物件時執行)註:資料庫什麼時候建立?第一次串連資料庫時建立資料庫(檔案),此時onCreate會被調用openHelper.getReadableDatabase();openHelper.getWritableDatebase();getReadableDatabase()和getWritableDatabase()的區別:查看原始碼可知:getReadableDatabase()在通常情況下返回的就是getWritableDatabase()拿到的資料庫,只有在拋出異常的時候才會以唯讀方式開啟onUpgrade資料庫更新時執行(一般每次更新時都要修改版本號碼)onOpen資料庫每次開啟時執行(每次開啟資料庫時調用,在onCreate,onUpgrade方法之後)3,Android提供了一個SQLiteDatabase類,使用該類可以對資料進行CRUD的操作註:和JDBC訪問資料庫不同,操作SQLite資料庫無需載入驅動,不用擷取串連,直接使用SQLiteDatabase對象執行SQL語句execSQL(String sql)方法可以執行insert、delete、update和CREATE TABLE之類有更改行為的SQL語句;execSQL(String sql, Object[] bindArgs)方法的第一個參數為SQL語句,第二個參數為SQL語句中預留位置參數的值,參數值在數組中的順序要和預留位置的位置對應。rawQuery()方法用於執行select語句。SQLiteDatabase還封裝了 insert()、delete()、update()、query()4個方法,也可以對資料庫進行操作Cursor是結果集遊標,用於對結果集進行隨機訪問,Cursor與JDBC中的ResultSet作用一樣。使用moveToNext()方法可以將遊標從當前行移動到下一行,如果已經移過了結果集的最後一行,返回結果為false,否則為true。SQLiteDatabase中的事務控制:beginTransaction() 開啟事務setTransactionSuccessful() 設定事務成功標記endTransaction() 結束事務註:endTransaction()需要放在finally中執行,否則事務只有到逾時的時候才自動結束,會降低資料庫並發效率
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
SQLite -- 嵌入式關係型資料庫