ContentResolver.update以及query方法参数详细说明

ContentResolver.update方法ContentValue只更新指定的字段

 如题目所叙,调用ContentResolver中更新方法
update( Uri arg0, ContentValues arg1, String arg2, String[] arg3)
大致操作如下:
public boolean onUpdateItem(Object data, DBParseCallback cb) {
		if(null != data && data instanceof INFO_MATCHCOLLECT){
			INFO_MATCHCOLLECT matchData = (INFO_MATCHCOLLECT) data;
			String userId = getUserId();
			ContentValues values = new ContentValues();
			if(matchData.wholeFieldBacktoSee){
				values.put("wholeFieldBacktoSee", 1);
			}else {
				values.put("wholeFieldBacktoSee", 0);
			}
			try {
				mContentResolver.update(mUri, values, "sid = ? and userId = ?", new String[] {matchData.sid, userId });
			} catch (Exception e) {
				return false;
			}
			
		}
		return true;
	}
一般会把改变的字段和值,以key-value的形式存到ContentValues中,调用update方法。
这时可能会考虑到,其他不需要改变的字段,是否也要把它们放进ContentValues中呢??疑问疑问疑问
经过试验,证明,只需要把更改的字段放入,其他不变的不需要额外再放

虽然,这个问题很简单,很细小,但是在网上查,却不好找到类似这样的回答。所以自己试验了一下,就很明了。实验可以检验真理,也可以让你明白一个知识点,更会让你很容易把它记住。大笑

ContentResolver的query方法参数说明

ContentResolver.query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
第一个参数,uri
第二个参数,projection,这个参数告诉Provider要返回的内容(列Column),null 为所有行
第三个参数,selection,设置条件,相当于SQL语句中的where,例:"packageName = ?"
第四个参数,selectionArgs,这个参数是要配合第三个参数使用的。例:new String[]{packageName}
第五个参数,sortOrder,按照什么进行排序,相当于SQL语句中的Order by
注意:sortOrder参数可以按照指定的列升序或降序排列,这时可能会默认加上group by 所以参数里要带上group by 的参数,再加上order by ... 可以加上数量的限制 limit 9.  例:"packageName order by updateTimeStamp DESC limit 9"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值