public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit);
參數說明:
table:數據庫表的名稱
columns:數據庫列名稱數組 寫入后最后返回的Cursor中只能查到這里的列的內容
selection:查詢條件
selectionArgs:查詢結果
groupBy:分組列
having:分組條件
orderBy:排序列
limit:分頁查詢限制
Cursor:返回值,將查詢到的結果都存在Cursor
Cursor是一個游標接口,每次查詢的結果都會保存在Cursor中 可以通過遍歷Cursor的方法拿到當前查詢到的所有信息。
Cursor的方法
moveToFirst() //將Curor的游標移動到第一條
moveToLast()///將Curor的游標移動到最后一條
move(int offset)//將Curor的游標移動到指定ID
moveToNext()//將Curor的游標移動到下一條
moveToPrevious()//將Curor的游標移動到上一條
getCount() //得到Cursor 總記錄條數
isFirst() //判斷當前游標是否為第一條記錄
isLast()//判斷當前游標是否為最后一條數據
getInt(int columnIndex) //根據列名稱獲得列索引ID
getString(int columnIndex)//根據索引ID 拿到表中存的字段
這里給出一個例子遍歷Cursor的例子
private
void query(SQLiteDatabase db) {
// 把整張表的所有數據query到cursor中
Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
//判斷cursor不為空 這個很重要
if (cursor != null) {
// 循環遍歷cursor
while (cursor.moveToNext()) {
// 拿到每一行name 與hp的數值
//www.sctarena.com
String name = cursor.getString(cursor.getColumnIndex("name"));
String hp = cursor.getString(cursor.getColumnIndex("hp"));
Log.v("info", "姓名是 " + name + "hp為 " + hp);
}
// 關閉
cursor.close();
}
}