当前位置: 代码迷 >> 综合 >> ContentResolver——增、删、改(表)
  详细解决方案

ContentResolver——增、删、改(表)

热度:46   发布时间:2023-12-28 08:43:48.0

本例中,对 表content://user_dictionary/words 的查询需要请求写入访问权限
即在manifest中添加 

<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />

本例中contentResolver ---> 系统提供的contentProvider

增加记录

@Override
public void onClick(View view) {// 这个对象对应一行数据,相当于sql:insert into table1(xx,xx) values(xx,xx)ContentValues newValues = new ContentValues();/** 设置每列的值。* “put”方法的参数是“列名”和“值”*/newValues.put(UserDictionary.Words.APP_ID, "example.user");newValues.put(UserDictionary.Words.LOCALE, "en_US");newValues.put(UserDictionary.Words.WORD, "insert");newValues.put(UserDictionary.Words.FREQUENCY, "100");//插入方法,返回null表示插入失败;插入成功则返回新行的uri,格式content://user_dictionary/words/_ID,_ID即新行主键值Uri newUri = getContentResolver().insert(UserDictionary.Words.CONTENT_URI,   // 表的URI(指定表)newValues                          // 要插入表的数据);Log.d(TAG, "onClick: "+newUri);
}

修改记录

            @Overridepublic void onClick(View v) {//设置要更新的列与值,相当于sql:update table1 set xx=xx,,,ContentValues updateValues = new ContentValues();/**设置更新的值并更新所选单词。* putNull(key),将key设置为null* put(key,value),将key设置为value*/updateValues.putNull(UserDictionary.Words.LOCALE);// 筛选条件,相当于sql:where xx LIKE ?String selectionClause = UserDictionary.Words.LOCALE + " LIKE ?";//筛选参数,填充到筛选条件对应?处String[] selectionArgs = {"en_%"};//返回值是已更新的行数int rowsUpdated = getContentResolver().update(UserDictionary.Words.CONTENT_URI,   // 表的URI(指定表)updateValues, //设置要更新的列与值,相当于sql:update table1 set xx=xx,,,selectionClause, //筛选条件,相当于sql:where xx LIKE ?;为null即没有where,没有筛选条件,选中表中全部记录selectionArgs //筛选参数,填充到筛选条件对应?处);Log.d(TAG, "onClick: "+rowsUpdated);}

删除记录

            @Overridepublic void onClick(View v) {//筛选条件,相当于sql:where xx = ?String selectionClause = UserDictionary.Words.WORD + " = ?";//筛选参数,填充到筛选条件对应?处String[] selectionArgs = {"insert"};// 返回已删除的行数,可以参考sql:delete from table1 where xx = ?int rowsDeleted = getContentResolver().delete(UserDictionary.Words.CONTENT_URI,   // 表的URI(指定表)selectionClause, //筛选条件,相当于sql:where xx = ?;为null即没有where,没有筛选条件,删除表中全部记录selectionArgs //筛选参数,填充到筛选条件对应?处);Log.d(TAG, "onClick: "+rowsDeleted);}