Android提供完全的對SQLite數據庫的支持。你在應用程序中創建的任何數據庫,應用程序中的任何類都可以通過名稱來訪問。推薦創建SQLite數據庫的方法是創建一個SQLiteOpenHelper類的子類,並重寫onCreate()方法,在這個方法中你可以執行SQLite命令來創建數據庫中的表。
例如:
public class DictionaryOpenHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
private static final String DICTIONARY_TABLE_NAME = "dictionary";
private static final String DICTIONARY_TABLE_CREATE =
"CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" +
KEY_WORD + " TEXT, " +
KEY_DEFINITION + " TEXT);";
DictionaryOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DICTIONARY_TABLE_CREATE);
}
}
你可以使用SQLiteOpenHelper類實現中定義的構造器來獲取一個實例。要從數據庫中讀寫數據,就要分別調用getWritableDatabase()和getReadableDatabase()方法。這兩個方法都會返回一個代表數據庫的SQLiteDatabase對象,並提供了操作SQLite的方法。
你可以使用SQLiteDatabase.query()方法來執行SQLite查詢,該方法接收各種查詢參數,如要查詢的表、查詢條件、選取的列、分組以及其他內的映射。對於復雜的查詢,例如要使用別名的列,你應該使用SQLiteQueryBuilder類,它提供幾種方便的構建查詢的方法。
每個SQLite的查詢都會返回一個Cursor對象,該對象指向所有的查詢到的行。你可以使用這種游標機制,來浏覽數據庫查詢的結果。
數據庫調試
Android的SDK包含了sqlite3數據庫工具,該工具允許你浏覽表內容,運行SQL命令,以及執行其他的SQLite數據庫上有用的功能。請看Examining sqlite3 databases from a remote shell來學習如何使用這個工具。
使用網絡連接
你可以使用網絡(當它可用時)來保存和恢復基於Web服務的數據。使用以下包中的類來執行網絡操作。
1. java.net.*
2. android.net.*
技巧提示:Android在標准的SQLite概念之上不強加任何限制。我們推薦包含一個自增的主鍵字段,使用這個唯一的ID可以快速的找到記錄。對於私有數據,這不是必須的,但是如果你要實現一個內容提供器,就必須包含一個BaseColumns._ID常量所使用的唯一ID。