各位看官們大家好,上一回中咱們說的是Android中數據存儲之數據庫的例子,這一回咱們繼續說該例子。閒話休提,言歸正轉。讓我們一起Talk Android吧!
看官們,我們在上一章回中介紹瞭如何在數據庫中刪除數據,這一回中我們將介紹如何在數據庫中查詢數據。查詢數據需要使用SQLiteDatabase類的query方法,其函數原型如下:
public Cursor query (String table, String[] columns, String selection,
String[] selectionArgs, String groupBy, String having, String orderBy)
該方法是重載方法,一共四個,我們只列舉其中的一個方法。此方法中各參數的含義如下:
- 第一個參數是數據庫中表的名字;
- 第二個參數表示查詢的列名;
- 第三個參數表示查詢的行名;
- 第四個參數表示匹配的內容值;
- 第五個參數表示查詢結果分類的依據;
- 第六個參數表示分類的依據值;
- 第七個參數表示查詢結果的排序方式,比如升序,降序;
該方法返回Cursor類型的對象。它是一種封裝數據的類型,從Cursor中提取出的數據類似Intent,也是使用getInt()等方法,不同之處爲方法中不是普通的key,而是表中列的索引,使用cursor.getColumnIndex("name")
獲取的key,這裏的name是表中的列名。另外Cursor也有類似集合中迭代器一樣的功能,用於遍歷其中的內容。 下面是具體的代碼示例,我們在代碼中複用了前面章回中SQLiteDatabase類的對象,請大家參考:
//查詢數據庫Student表中的數據
//沒有使用查詢條件,因此查找到表中所有的內容
public void QueryData() {
Log.i(TAG, "QueryData: ");
Cursor cursor = mDatabase.query("Student",null , null, null, null, null, null);
if(cursor.moveToFirst()) {
do{
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
String className = cursor.getString(cursor.getColumnIndex("class"));
Log.i(TAG,"Name: "+name+" Age: "+ age +" Class: "+className);
}while (cursor.moveToNext());
}
cursor.close();
}
各位看官,關於Android中數據存儲之數據庫的例子咱們就介紹到這裏,欲知後面還有什麼例子,且聽下回分解!