Android SQLit數據庫學習
Android中SqLite的使用詳情
今天我就和大家分享一下在Android中如何使用SQLite。
首先,我們來了解一下SQLite,SQLite是一款輕型的嵌入式數據庫,是遵守ACID(原子性、一致性、隔離性、持久性)的關聯式數據庫管理系統。
SQLite的特點:
1.輕量級
使用 SQLite 只需要帶一個動態庫,就可以享受它的全部功能,而且那個動態庫的尺寸比較小。
2.獨立性(不需要安裝)
SQLite 數據庫的核心引擎不需要依賴第三方軟件,也不需要所謂的“安裝”。
3.隔離性
SQLite 數據庫中所有的信息(比如表、視圖、觸發器等)都包含在一個文件夾內,方便管理和維護。
4.跨平臺
SQLite 目前支持大部分操作系統(windows,linux,Android,ios),不至電腦操作系統更在眾多的手機系統也是能夠運行
5.多語言接口
SQLite 數據庫支持多語言編程接口。
6.安全性
SQLite 數據庫通過數據庫級上的獨占性和共享鎖來實現獨立事務處理。這意味著多個進程可以在同一時間從同一數據庫讀取數據,但只能有一個可以寫入數據。
SQLite數據類型:
一般數據采用的固定的靜態數據類型,而SQLite采用的是動態數據類型,會根據存入值自動判斷。
SQLite具有以下五種常用的數據類型:
?
NULL: 表示一個NULL值
INTEGER: 用來存儲一個整數,根據大小可以使用1,2,3,4,6,8位來存儲.
REAL: IEEE 浮點數
TEXT: 按照字符串來存儲
BLOB: 按照二進制值存儲,不做任何改變.
要註意,這些類型是值本身的屬性,而不是列的屬性.但是為了和其他DBMS(以及SQL標準)兼容,在其create table語句中可以指定列的類型,為此,SQLite有個列相似性的概念(Column Affinity). 列相似性是列的屬性,SQLite有以下幾種列相似性:
TEXT: TEXT列使用NULL,TEXT或者BLOB存儲任何插入到此列的數據,如果數據是數字,則轉換為TEXT.
NUMERIC: NUMERIC列可以使用任何存儲類型,它首先試圖將插入的數據轉換為REAL或INTEGER型的,如果成功則存儲為REAL和INTEGER型,否則不加改變的存入.
INTEGER:和NUMERIC類似,只是它將可以轉換為INTEGER值都轉換為INTEGER,如果是REAL型,且沒有小數部分,也轉為INTEGER
REAL: 和NUMERIC類型 只是它將可以轉換為REAL和INTEGER值都轉換為REAL.
NONE:不做任何改變的嘗試.
SQLite根據create table語句來決定每個列的列相似性.規則如下(大小寫均忽略):
1. 如果數據類型中包括INT,則是INTEGER
2. 如果數據類型中包括CHAR,CLOB,TEXT則是TEXT
3. 如果數據類型中包括BLOB,或者沒有指定數據類型,則是NONE
4. 如果數據類型中包括REAL,FLOA或者DOUB,則是REAL
5. 其余的情況都是NUMERIC
SQLiteDatabase的常用方法,方法名稱及方法表示含義:
打開或創建數據庫
openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)、
插入一條記錄
insert(String table,String nullColumnHack,ContentValues values)
刪除一條記錄
delete(String table,String whereClause,String[] whereArgs)
查詢一條記錄
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)
修改記錄
update(String table,ContentValues values,String whereClause,String[] whereArgs)
執行一條SQL語句
execSQL(String sql)
關閉數據庫
close()
在使用Sqlite的過程中,我們必須使用到一個輔助類————SQLiteOpenHelper
SQLiteOpenHelper是SQLiteDatabase的一個幫助類,用來管理數據庫的創建和版本的更新。一般是建立一個類繼承它,並實現它的onCreate和onUpgrade方法.
SQLiteOpenHelper提供的常用方法,方法名稱及方法表示含義:
構造方法,一般是傳遞一個要創建的數據庫名稱,版本等參數
SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version)
創建數據庫時調用
onCreate(SQLiteDatabase db)
版本更新時調用
onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)
創建或打開一個只讀數據庫
getReadableDatabase()
創建或打開一個讀寫數據庫
getWritableDatabase()
源碼下載地址:http://download.csdn.net/detail/littyzhon/9839805
Android SQLit數據庫學習