標籤:android sqlite sqliteopenhelper android資料庫
1.Android資料庫簡介
Android通過結合使用SQLite資料庫和Content Provider,提供了結構化資料的持久功能。
SQLite資料庫可以通過一種結構化的、易於管理的方法來儲存應用程式資料。Android提供了一個完整的SQLite關聯式資料庫的庫檔案。每個應用程式都可以建立自己的資料庫,並對這個資料庫擁有完全的控制權。
Android資料庫儲存在裝置上的/data/data/<package name>/database檔案夾中,所有的資料庫都是私人的,只能被建立他們的應用程式訪問。
2.Content Provider簡介
Content Provider提供了一種基於使用“content://”模式的簡單URI定址模型來發布和使用資料的介面,是安卓四大組件之一。
建立了底層資料存放區之後,就可以使用Content Provider,它通過底層資料來源執行了一致的抽象,使得應用程式不必過於依賴某個資料來源。
使用它可以實現應用程式間資料的共用,比如我們的應用可以調取簡訊或連絡人的操作。當然我們也發行就緒我們自己的Content Provider,這樣別人就可以在他們的應用中對我們的資料庫進行CRUD的操作了。
具體使用方法,後期會有專題進行介紹。
3.SQLite簡介
SQLite是一種流行的關聯式資料庫管理系統(Relational Database Manager System)。特徵為:開源 符合標準 輕量級。它已經被實現為簡潔的C語言,並且成為Android軟體棧的一部分。
通過作為一個庫實現,而不是作為一個獨立的進程不斷執行,每個SQLite資料庫成為建立它的應用程式的完整部分。這樣做能減少應用程式的外部依賴性、最小化延遲並簡化事務鎖定和同步。
SQLite非常可靠,是許多消費類電子產品(如很多MP3播放器和智能手機)首選的資料庫系統。
4.Content Value和Cursor
Content Value用來向資料庫中的表插入新的行。每一個ContentValues對象都將一個表行表示為列名到值得映射。
資料庫查詢作為Cursor對象返回。Cursor是底層資料中的結果集的指標,他沒有提取和返回結果值得副本。
Cursor的常用方法:
cursor.moveToFirst();//把遊標移動到查詢結果中的第一行 cursor.moveToNext();//把遊標移動到下一行 cursor.moveToLast();//把遊標移動到最後一行 cursor.moveToPrevious();//把遊標往前移動一行 cursor.getCount();//擷取結果集的數量 cursor.getColumnIndexOrThrow("");//根據指定列名返回其索引,從0開始,沒有則拋出異常 cursor.getColumnNames();//擷取當前cursor中的所有列名的字串資料 cursor.getColumnName(1);//根據索引返回列名 cursor.moveToPosition(1);//把遊標移動到指定行 cursor.getPosition();//擷取當前遊標的位置 5.SQLiteOpenHelper簡介
SQLiteOpenHelper是一個抽象類別,用於實現建立、開啟和升級資料庫。
SQLiteOpenHelper會在成功開啟資料庫執行個體後再緩衝它們,所以我們可以在要執行查詢或事務前請求開啟資料庫,除非我們不再需要使用資料庫,否則無需手動關閉他們。
資料庫操作特別是開啟和建立的額時候需要很長的時間才能完成,因此為了確保這些操作不會影響使用者體驗,應使資料庫操作非同步執行。
一般,在我們的應用中需要定義一個類繼承SQLiteOpenhelper類,通過重寫其建構函式 onCreate onUpgrade方法來分別處理建立資料庫和升級到新版本資料庫。
一些資料庫基本的概念就簡單介紹到這了,下一篇實戰代碼介紹一下android資料庫的增刪改查操作。
Android資料庫之基本概念(上)