Joblogs——ContentValues的使用

ContentValues在Android的SQLiteDatabase.update (String table, ContentValues values, String whereClause, String[] whereArgs)中以参数的形式使用。

至于ContentValues的具体使用。查看SQLiteDatabase.update 方法源码:

public int updateWithOnConflict(String table, ContentValues values,
            String whereClause, String[] whereArgs, int conflictAlgorithm) {
        if (values == null || values.size() == 0) {
            throw new IllegalArgumentException("Empty values");
        }

acquireReference();
        try {
            StringBuilder sql = new StringBuilder(120);
            sql.append("UPDATE ");
            sql.append(CONFLICT_VALUES[conflictAlgorithm]);
            sql.append(table);
            sql.append(" SET ");

// move all bind args to one array
            int setValuesSize = values.size();
            int bindArgsSize = (whereArgs == null) ? setValuesSize : (setValuesSize + whereArgs.length);
            Object[] bindArgs = new Object[bindArgsSize];
            int i = 0;
            for (String colName : values.keySet()) {
                sql.append((i > 0) ? "," : "");
                sql.append(colName);
                bindArgs[i++] = values.get(colName);
                sql.append("=?");
            }
            if (whereArgs != null) {
                for (i = setValuesSize; i < bindArgsSize; i++) {
                    bindArgs[i] = whereArgs[i - setValuesSize];
                }
            }
            if (!TextUtils.isEmpty(whereClause)) {
                sql.append(" WHERE ");
                sql.append(whereClause);
            }

SQLiteStatement statement = new SQLiteStatement(this, sql.toString(), bindArgs);
            try {
                return statement.executeUpdateDelete();
            } finally {
                statement.close();
            }
        } finally {
            releaseReference();
        }
    }

ContentValues,使用Has和Map来保存数据,同时还可以序列化:

public final class ContentValues implements Parcelable {
    public static final String TAG = "ContentValues";

/** Holds the actual values */
    private HashMap<String, Object> mValues;

时间: 2024-10-29 03:48:09

Joblogs——ContentValues的使用的相关文章

android 随记 ContentValues

ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象. 在忘数据库中插入数据的时候,首先应该有一个ContentValues的对象所以: ContentValues initialValues = new ContentValues(); initialValues.put(key,values); SQLiteDat

ContentValues的使用

建一个基础的类,新建一个数据库 package com.example.ContentValuesDemo; import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper; public class DemoHelper extends SQLiteOpenHelper { public DemoHelper(

【安卓9】SQLiteDatabase类、ContentValues 类

SQLiteDatabase类 android.database.sqlite.SQLiteDatabase类的实例都代表了一个SQLite数据库的操作,通过SQLiteDatabase类可以执行SQL语句,以完成对数据表的增加.修改.删除.查询等操作,在此类之中定义了基本的数据库执行SQL语句的操作方法以及一些操作的模式常量. 常用操作方法 常量或方法 类型 描述 public static final int OPEN_READONLY 常量 以只读方式打开数据库 public static

ContentValues的用法

ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象. 在往数据库中插入数据的时候,首先应该有一个ContentValues的对象所以: ContentValues initialValues = new ContentValues(); initialValues.put(key,values); SQLiteDat

contentValues HashTable 的理解

[Android]ContentValues的用法 ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象. 在忘数据库中插入数据的时候,首先应该有一个ContentValues的对象所以: ContentValues initialValues = new ContentValues(); initialValues.

Android中的ContentValues用法

ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象.ContentValues存储对象的时候,以(key,value)的形式来存储数据. 在忘数据库中插入数据的时候,首先应该有一个ContentValues的对象所以: ContentValues initial = new ContentValues(); init

android开发系列之由ContentValues看到的

这本篇博客里面我想重点来分析一下ContentValues的源码以及它里面涉及到的继承接口Parcelabel,还有HashMap的源码. 相信使用过android里面数据库操作的朋友对于ContentValues一定不会感到陌生吧,它其实很像一个字典对象,可以用来存储键值对.比如代码如下: ContentValues contentValues=new ContentValues(); contentValues.put("name","xiao"); conte

【Android 个人理解(七)】用ContentValues和自定义Application处理数据

我当时面临的需求是 1.核心算法数据和UI的交互,2.多个数组数据的封装,3.不确定的数组数据转化到表格形式. 就于以上需求,我采用自定义的Application储存和传递全局的数据,采用ContentValues的key-value转化和储存数组数据,然后通过遍历ContentValues的key将对应的值填入对应的表格. 大体的步骤如下: 1.从UI界面获取数据,通过循环填充成数组. // 得到三个初始化编号的值 private void SetValuesAtNewTab(View new

王立平-- ContentValues , HashTable , HashMap区别

ContentValues  :是一种存储机制,key-value 特点:key只能是string类型,value:只能是基本类型,不能是对象. 应用:常用语往数据库中插入数据 ContentValues values = new ContentValues(); values.put("name", "xh"); values.put("level", 5); SQLiteDataBase db=helper.getWritableDataba