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

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM