文档章节

contentprovider来创建数据库的一些步骤:

 等待流星
发布于 2014/01/04 11:51
字数 398
阅读 36
收藏 0

1:首先创建一个xxproviderclass,它是extends contentprovider的。

2:在这个xxprovider中首选定义要创建的数据库的databasename,以及databaseversion

3:非常重要的是:建立databaseauthority。值得注意的是这个authority必须和配置文件中的authority必须是一致的

4:创建这个数据库的要创建的数据表的名字tablename

5:创建外部通过访问数据表的Uri。(public static final Uri PENDINGLIST_CONTENT_URI = Uri.parse("content://"

           + BrowserProvider.AUTHORITY + "/"

           + BrowserProvider.PENDINGLIST_TABLE_NAME);)值得注意的是这里必须是Uri而不是url。这个Uri是由三部分来组成。Content//authority以及数据表。

6:定义需要创建数据表的一些属性列。然后可以用一个数组将这些属性列来封装起来

7:定义一个UriMacther,它的作用是当有多个数据表的时候,用来匹配当前操作的是哪个数据表的Uri

private static final UriMatcher sUriMatcher;

    static {

       sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

       sUriMatcher.addURI(AUTHORITYBOOKMARK_TABLE_NAMEBOOKMARK_URI);

       sUriMatcher.addURI(AUTHORITYPENDINGLIST_TABLE_NAMEPENDINGLIST_URI);

       sUriMatcher.addURI(AUTHORITYFOLDER_TABLE_NAMEFOLDER_URI);

    }

8:在这个xxprovider中需要定义一个内部类

   Databasehleper 它是继承了SQLiteOpenHelper,这个内部类有一个构造函数,已经重写了两个方法。

DatabaseHelper(Context context) {

           super(context, DATABASE_NAMEnullDATABASE_VERSION);

       }

@Override

       public void onCreate(SQLiteDatabase db) {

 

           db.execSQL(“创建数据表的语句”

             

);

       }

 

       @Override

       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

          

           db.execSQL("DROP TABLE IF EXISTS " + FOLDER_TABLE_NAME);

           onCreate(db);

       }

 

9:定义databasehleper这个类的一个对象,用于xxprovider来操作

10:重写xxprovider的几个方法

Delete insert oncreate query以及update等方法

 

这些步骤就是如何使用contentprovider来创建数据库


本文转载自:http://blog.163.com/zhunshiqichuang%40126/blog/static/16806544320106264473611/

共有 人打赏支持
粉丝 5
博文 78
码字总数 10995
作品 0
崇明
私信 提问
实现ContentProvider事务操作以及对数据库的监控

对数据库的操作,我们经常避免不了进行事务处理,这样可以减少对数据库操作的次数,从而提高了读写数据库的效率。之前博主对ContentProvider基本使用和涉及的知识点有个大致的概括,这里就不...

zhoulc
2014/03/01
0
0
学习笔记-Android之ContentProvider实现Notepad

第一个类用来定义Notepad中的权限AUTHORIT、表名、列名、Uri以及MIME。此类中定义一个内部类Notes实现BaseColumns借口;BaseColumns接口中没有其他方法之定义了两个常量: public static fi...

WonderfulLife
2012/09/12
0
0
Android:关于ContentProvider的知识都在这里了

前言 属于 的四大组件之一 本文全面解析了 ,包括 原理、使用方法 & 实例讲解,希望你们会喜欢。 目录 1. 定义 即 内容提供者,是 四大组件之一 2. 作用 进程间 进行数据交互 & 共享,即跨进...

天王盖地虎626
2018/12/24
0
0
android Content Provider 详解

Android中的Contentprovider机制可支持在多个应用中存储和读取数据。这也是跨应用共享数据的唯一方式。在android系统中,没有一个公共的内存区域,供多个应用共享存储数据。 Android提供了一...

鉴客
2011/12/21
39.2K
5
数据:ContentProvider类

一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content providers是以类似数据库中表的方式将数据暴露。 Content providers存储和检索数据,通过它可以...

野渡书生
2016/03/11
10
0

没有更多内容

加载失败,请刷新页面

加载更多

2019 年最好的 7 款虚拟私人网络服务

糟糕的数据安全会带来极大的代价,特别是对企业而言。它会大致大规模的破坏并影响你的品牌声誉。尽管有些企业可以艰难地收拾残局,但仍有一些企业无法从事故中完全恢复。不过现在,你很幸运地...

linuxCool
36分钟前
1
0
OSChina 周一乱弹 —— 加油,还有11个小时就下班了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @_全村的希望 :吴亦凡把大碗面正儿八经做成单曲了,你别说,还挺好听 《大碗宽面》- 吴亦凡 手机党少年们想听歌,请使劲儿戳(这里) @tom_t...

小小编辑
57分钟前
233
12
C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
7
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
6
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部