ContentValues的用法

转载 2016年08月30日 22:58:33

ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象。

在忘数据库中插入数据的时候,首先应该有一个ContentValues的对象所以:

ContentValues initialValues = new ContentValues();

initialValues.put(key,values);

SQLiteDataBase sdb ;

sdb.insert(database_name,null,initialValues);

插入成功就返回记录的id否则返回-1;

就可以插入一行数据,详细见下面代码

 

复制代码
public Uri insert(Uri uri, ContentValues initialValues) {
        if (uriMatcher.match(uri) != CONTACTS) {
            throw new IllegalArgumentException("unknow uri " + uri);
        }
        ContentValues values;
        if (initialValues != null) {
            values = new ContentValues(initialValues);
            System.out.println("contentValues插入成功,initailValues不是空的");
        } else {
            values = new ContentValues();
        }
        Long now = Long.valueOf(System.currentTimeMillis());
        // 设置默认值
        if (values.containsKey(ContactColumn.CREATED) == false) {
            values.put(ContactColumn.CREATED, now);
        }

        if (values.containsKey(ContactColumn.NAME) == false) {
            values.put(ContactColumn.NAME, now);
        }

        if (values.containsKey(ContactColumn.EMAIL) == false) {
            values.put(ContactColumn.EMAIL, now);
        }

        if (values.containsKey(ContactColumn.MOBILE) == false) {
            values.put(ContactColumn.MOBILE, now);
        }

        if (values.containsKey(ContactColumn.MODIFIED) == false) {
            values.put(ContactColumn.MODIFIED, now);
        }
        System.out.println("应该插入成功了吧");
        long RowId = contactsDB.insert(CONTACTS_TABLE, null, values);
        if (RowId > 0) {
            Uri noteUri = ContentUris.withAppendedId(CONTENT_URI, RowId);
            getContext().getContentResolver().notifyChange(noteUri, null);
            System.out.println("到这里也是没问题的!");
            return noteUri;
        }
        throw new IllegalArgumentException("unknow uri " + uri);
    }
复制代码

当然以上代码是根据Uri来操作的所以要想明白代码怎么回事?还要明白ContentProvider到底是怎么存储数据的!

使用ContentValues对数据库进行操作

在main.xml中:       android:layout_width="fill_parent"     android:layout_height="fill_parent" ...
  • helloliyewen
  • helloliyewen
  • 2013年09月07日 20:43
  • 2157

Android——Contentvalues基本的使用

private SQLiteDatabase sdb; // 使用ContentValues,类似MAP的键值对,KEY要跟数据表的字段名一致 ContentValues contentval...
  • Heavy_Dream
  • Heavy_Dream
  • 2017年06月04日 07:40
  • 809

Uri中ContentValues的用法+Android中ContentProvider总结

一、 ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种...
  • tekabo
  • tekabo
  • 2016年06月27日 17:32
  • 1830

ContentValues怎么用的?

源码中的ContentValues package android.content; public final class ContentValues implements androi...
  • ndzj981479673
  • ndzj981479673
  • 2014年08月13日 10:07
  • 1217

Android ContentValues类

ContentValues类和Hashtable比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个String类型,而值都是基本类型。 我们回顾一下,在上一个例子当中,我们是通过SQ...
  • wave_1102
  • wave_1102
  • 2015年08月10日 17:01
  • 6115

ContentValues

/**  *This class is used to store a set of values that the {@link ContentResolver}  *can process....
  • wcs542882916
  • wcs542882916
  • 2015年01月12日 01:13
  • 1413

contentvalues & bundle &hashtable 之间的区别

平时的开发中我们经常会遇见contentvalues,bundle,hashtable,hashmap这些类,总是感觉他们用法很像但是又不清楚他们之间有什么区别,今天抽空看了一下,总结出来供大家参考。...
  • suanzaoshulaowei
  • suanzaoshulaowei
  • 2015年06月11日 16:57
  • 1135

ContentValues类详解

ContentValues类和Bundle类很类似,都是使用HashMap来
  • akon405
  • akon405
  • 2014年04月08日 23:15
  • 859

ContentValues和HashTable和HashMap

ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues Key只能是String类型,values只能存储基本类型的数据,像stri...
  • Caesardadi
  • Caesardadi
  • 2014年03月01日 12:45
  • 9185

利用ContentValues.put()方法,通过程序添加通讯录里的联系人资料

try{ ContentResolver cr = this.getContentResolver(); ContentValues cv...
  • Vincent_czz
  • Vincent_czz
  • 2010年08月01日 18:13
  • 6154
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ContentValues的用法
举报原因:
原因补充:

(最多只允许输入30个字)