您的位置:首页 > 移动开发 > Android开发

geekband android #5 第六周分享(SQL、Content Provider)

2016-07-27 03:48 561 查看
(由自己的新浪博客转移,原文作于:2016.4.10)

1.SQLite存储重要的数据

    特色:轻量级,独立,隔离,跨平台,多语言接口,安全性。

    如何和数据库打交道: a.如何设计数据库与表

                                       b.对数据库进行增删改查

                                       c.优化

                                       d.对象关系映射ORM

2.SQLite具体操作。

    创建,升级



    Add:用到ContentValues类,databasehelper继承于SQLiteOpenHelper的put()方法,传入插入的内容。



    Query:Cursor游标。



    Delete

    Update

3.什么是Content Provider

    内容提供器,主要用于在不同的应用程序之间实现数据共享的功能,它提供一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。

        涉及到的类包括:ContentProvider、 ContentReslover 、ContentValues、Cursor等,以及前面谈到的数据库等。

        ContentValues是用于存储ContentResolver处理的值。如,Contentvalues.put(String key,String value),将一个字符串值存入键中,形成键值中,同理,可以将一个record的各个列的数据存入ContentValue,然后插入到provider的表中。同样,可以进行其他操作,如取出对应键的get()。

    第一步需要继承ContentProvider并重写下面方法:

        public classPersonContentProvider extends ContentProvider {

        public boolean onCreate()

        public Uri insert(Uri uri, ContentValues values)

        public int delete(Uri uri, String selection,String[] selectionArgs)

        public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)

        public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String ortOrder)

        public String getType(Uri uri)

}

    第二步需要在AndroidManifest.xml使用对该ContentProvider进行配置,为了能让其他应用找到该ContentProvider , ContentProvider 采用了authorities(主机名/域名)对它进行唯一标识,你可以把ContentProvider看作是一个网站(想想,网站也是提供数据者),authorities 就是他的域名:

    为存储和获取数据提供了统一接口。

    Android提供的一些默认的Content Provider

    URI介绍:

        


        URI:统一资源标识符,代表要操作的数据,可以用来标识每个ContentProvider,这样你就可以通过指定的URI找到想要的ContentProvider,从中获取或修改数据。

        主要分三个部分:scheme, authority and path,scheme

        A部分:表示是一个Android内容URI,说明由ContentProvider控制数据,该部分是固定形式,不可更改的。

        B部分:是URI的授权部分,是唯一标识符,用来定位ContentProvider。格式一般是自定ContentProvider类的完全限定名称,注册时需要用到,如:com.alexzhou.provider.NoteProvider

        C部分和D部分:是每个ContentProvider内部的路径部分,C和D部分称为路径片段,C部分指向一个对象集合,一般用表的名字,如:/notes表示一个笔记集合;D部分指向特定的记录,如:/notes/1表示id为1的笔记,如果没有指定D部分,则返回全部记录。

4.Google是如何定义Content Provider。

    内容提供者将一些特定的应用程序提供给其他应用程序使用。

    数据可以存储于文件系统,SQLite数据库或其他方式。

    应用程序并不是直接调用这些方法,而是使用ContentResolver对象,调用它的方法作为替代。

    ContentResolver可以与任意提供者对话,与其合作者来对所有相关交互通讯进行管理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: