geekband android #5 第六周分享(SQL、Content Provider)
2016-07-27 03:48
561 查看
(由自己的新浪博客转移,原文作于:2016.4.10)
1.SQLite存储重要的数据
特色:轻量级,独立,隔离,跨平台,多语言接口,安全性。
如何和数据库打交道: a.如何设计数据库与表
b.对数据库进行增删改查
c.优化
d.对象关系映射ORM
2.SQLite具体操作。
创建,升级
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/0bad1076eb0b21a212db9355893e6b2f)
Add:用到ContentValues类,databasehelper继承于SQLiteOpenHelper的put()方法,传入插入的内容。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/ed66174bbcc70c3a85a8c9c224ac7cb7)
Query:Cursor游标。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/45bd6c065efb3ddbe937cd2343935af7)
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介绍:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/40ee728bc0aeec09d365c078844735bd.jpg)
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可以与任意提供者对话,与其合作者来对所有相关交互通讯进行管理。
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介绍:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/40ee728bc0aeec09d365c078844735bd.jpg)
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可以与任意提供者对话,与其合作者来对所有相关交互通讯进行管理。
相关文章推荐
- Android中ScrollView嵌套GridView,解决GridView显示不全的问题
- android(安卓)开源框架 使用在线工具jsonschema2pojo根据json生成java对象
- Android杀毒实现原理及实例
- Android逆向工程-破解
- Android中通过注解代替findViewById方法 Android 中的 IOC 框架 【ViewInject】
- android -- 小功能 DownloadManager——Android 下载 apk 包并安装
- Android Studio 生成Jar并混淆 使用Proguard混淆Java源代码
- Android如何保持指定类不被混淆或子类
- Android操作数据连接和Wifi
- Xamarin For Visual Studio第一坑 - Android SDK版本问题
- android无法影藏标题栏问题
- Android之ConnectivityManager
- Android_RecyclerView的用法
- Android动画知识点汇总
- Android之6.0 权限申请封装
- 【Android】一段时间不操作弹出【屏保】效果
- 使用android studio导入工程,编译出现问题
- Android 自定义 View(一) 绘制动态时钟
- android学习之自定义适配器
- android学习之自定义适配器