Android学习笔记——ContentProvider.query方法与SQLiteDatabase.query方法的联系

ContentProvider是Android中不同应用之间传递数据的API,通过重写ContentProvider中的CRUD方法实现数据处理。那么他的CRUD方法与SQLiteDatabase的CRUD方法之间有什么联系呢?或者说,参数是如何传递的?

比较复杂的是二者的query方法,先来看看两个方法的签名:

  • ContentProvider的query方法
1 public Cursor query(Uri uri, String[] projection, String where, String[] whereArgs, String sortOrder)

参数说明

参数 说明
Uri uri 标示需要操作的数据的地址(我自己的理解)
String[] projection 相当于要查询的字段名
String where 查询的条件
String[] whereArgs 查询条件的占位符插入的参数
String sortOrder 排序方式

 

 

 

 

 

 

  • SQLiteDatabase的query方法
1 public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

参数说明

参数 说明
String table 表名
String[] columns 要查询的列名
String selection 查询的条件子句
String[] selectionArgs 查询条件占位符插入的参数
String groupBy 分组条件子句
String having have 子句
String orderBy 排序条件
String limit 用于进行分页

 

 

 

 

 

 

 

 

 

对比两个方法的参数,相对应的参数有4个:

ContentProvider.query SQLiteDatabase.query 参数说明 能否为空
String[] projection String[] colums 要查询的列名数组 可以为null,表示查询所有列
String where String selection 查询的条件子句 可以为null,表示查询所有列
String[] whereArgs String[] selectionArgs 条件子句中占位符“?”传入的参数值 可以为null
String sortOrder String orderBy 对记录进行排序 可以为null

 

 

 

 

posted @ 2014-07-03 23:24  佑车道  阅读(3072)  评论(0编辑  收藏  举报