ContentResolver.query()的参数 说明

public final Cursorquery (Uri uri,String[] projection, String selection, String[] selectionArgs,StringsortOrder)
Since:  API Level 1

Query the given URI, returning a Cursor over the result set.

For best performance, the caller should follow theseguidelines:

  • Provide an explicit projection, to prevent reading data fromstorage that aren't going to be used.
  • Use question mark parameter markers such as 'phone=?' insteadof explicit values in theselectionparameter, so thatqueries that differ only by those values will be recognized as thesame for caching purposes.
Parameters
uriThe URI, using the content:// scheme, for the content toretrieve.
projectionA list of which columns to return. Passing null will return allcolumns, which is inefficient.
selectionA filter declaring which rows to return, formatted as an SQLWHERE clause (excluding the WHERE itself). Passing null will returnall rows for the given URI.
selectionArgsYou may include ?s in selection, which will be replaced by thevalues from selectionArgs, in the order that they appear in theselection. The values will be bound as Strings.
sortOrderHow to order the rows, formatted as an SQL ORDER BY clause(excluding the ORDER BY itself). Passing null will use the defaultsort order, which may be unordered.
Returns
  • A Cursor object, which is positioned before the first entry, ornull

解释一下:假如一条sql语句如下:
select * from anyTable where var='const'
那么anyTable就是uri,*就是projection,selection是“var=?",selectionArgs写成这样:newString[]{'const‘}

至于最后一个就简单了,就是排序方式。


其实 第三个参数是sql语句where部分,如果第三个参数不带 “?”,那么第四个参数 写成 null;

..........................................................................................//华丽的分割线...................................................................

from:http://blog.csdn.net/ada168855/article/details/8475993

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的数值

String name = cursor.getString(cursor.getColumnIndex("name")); 
String hp = cursor.getString(cursor.getColumnIndex("hp")); 
Log.v("info", "姓名是 " + name + "hp为 " + hp); 
} 
// 关闭

cursor.close(); 
} 
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值