【contentresolver中的增删改查方法】在Android开发中,`ContentResolver` 是一个非常重要的类,它用于与 `ContentProvider` 进行交互,实现对数据的访问和操作。常见的操作包括插入(增)、删除(删)、更新(改)和查询(查)。下面是对 `ContentResolver` 中这四种基本操作方法的总结。
一、概述
操作类型 | 方法名 | 说明 |
增 | insert() | 向指定的ContentProvider插入数据 |
删 | delete() | 删除指定的ContentProvider中的数据 |
改 | update() | 更新指定的ContentProvider中的数据 |
查 | query() | 查询指定的ContentProvider中的数据 |
二、详细说明
1. 插入(Insert)
方法:
```java
Uri insert(Uri uri, ContentValues values)
```
说明:
该方法用于向指定的 `ContentProvider` 插入一条新的数据记录。参数 `uri` 表示目标内容的URI,`values` 是一个 `ContentValues` 对象,用于保存要插入的数据键值对。
示例:
```java
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 25);
Uri uri = Uri.parse("content://com.example.provider/user");
Uri newUri = getContentResolver().insert(uri, values);
```
2. 删除(Delete)
方法:
```java
int delete(Uri uri, String selection, String[] selectionArgs)
```
说明:
该方法用于从指定的 `ContentProvider` 中删除符合条件的数据记录。`selection` 是SQL WHERE子句,`selectionArgs` 是用于替换占位符的参数数组。
示例:
```java
String where = "name = ?";
String[] args = {"张三"};
int count = getContentResolver().delete(uri, where, args);
```
3. 更新(Update)
方法:
```java
int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
```
说明:
该方法用于更新指定的 `ContentProvider` 中的数据记录。`values` 是要更新的数据,`selection` 和 `selectionArgs` 用于定位需要更新的记录。
示例:
```java
ContentValues values = new ContentValues();
values.put("age", 26);
String where = "name = ?";
String[] args = {"张三"};
int count = getContentResolver().update(uri, values, where, args);
```
4. 查询(Query)
方法:
```java
Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
```
说明:
该方法用于从指定的 `ContentProvider` 中查询数据。`projection` 是要返回的列名数组,`selection` 和 `selectionArgs` 用于筛选条件,`sortOrder` 是排序方式。
示例:
```java
String[] projection = {"_id", "name", "age"};
String where = "age > ?";
String[] args = {"20"};
String sortOrder = "name ASC";
Cursor cursor = getContentResolver().query(uri, projection, where, args, sortOrder);
```
三、总结
操作 | 方法 | 参数说明 | 返回值 |
插入 | insert() | Uri, ContentValues | Uri(新插入的记录URI) |
删除 | delete() | Uri, String, String[] | int(受影响行数) |
更新 | update() | Uri, ContentValues, String, String[] | int(受影响行数) |
查询 | query() | Uri, String[], String, String[], String | Cursor(结果集) |
通过合理使用 `ContentResolver` 的增删改查方法,开发者可以方便地与系统或第三方提供的 `ContentProvider` 进行数据交互,实现应用间的数据共享与操作。