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