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等方法