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

(由自己的新浪博客转移,原文作于: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可以与任意提供者对话,与其合作者来对所有相关交互通讯进行管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值