http://blog.csdn.net/xiaodongvtion/article/details/7865669数据库
1:首先建立一个xxprovider的class,它是extendscontentprovider的。数组
2:在这个xxprovider中首选定义要建立的数据库的databasename,以及databaseversionide
3:很是重要的是:创建database的authority。值得注意的是这个authority必须和配置文件中的authority必须是一致的函数
4:建立这个数据库的要建立的数据表的名字tablenameurl
5:建立外部经过访问数据表的Uri。(public static final Uri PENDINGLIST_CONTENT_URI = Uri.parse("content://"spa
+ BrowserProvider.AUTHORITY + "/".net
+BrowserProvider.PENDINGLIST_TABLE_NAME);)值得注意的是这里必须是Uri而不是url。这个Uri是由三部分来组成。Content://和authority以及数据表。对象
6:定义须要建立数据表的一些属性列。而后能够用一个数组将这些属性列来封装起来blog
7:定义一个UriMacther,它的做用是当有多个数据表的时候,用来匹配当前操做的是哪一个数据表的Uri继承
private static final UriMatcher sUriMatcher;
static {
sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
sUriMatcher.addURI(AUTHORITY, BOOKMARK_TABLE_NAME, BOOKMARK_URI);
sUriMatcher.addURI(AUTHORITY, PENDINGLIST_TABLE_NAME, PENDINGLIST_URI);
sUriMatcher.addURI(AUTHORITY, FOLDER_TABLE_NAME, FOLDER_URI);
}
8:在这个xxprovider中须要定义一个内部类
Databasehleper它是继承了SQLiteOpenHelper,这个内部类有一个构造函数,已经重写了两个方法。
DatabaseHelper(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(“建立数据表的语句”
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLEIF EXISTS " + FOLDER_TABLE_NAME);
onCreate(db);
}
9:定义databasehleper这个类的一个对象,用于xxprovider来操做
10:重写xxprovider的几个方法
Delete insert oncreate query以及update等方法