SQLiteDataBase、SQLiteOpenHelper、ContentProvider介紹和區別

1.SQLiteOpenHelper是將對數據庫和表的創建、插入、更新、刪除操作進行了簡單的封裝;

2、SQLiteDataBase代表一個數據庫(底層就是一個數據庫文件),一旦應用程序獲得了代表指定數據庫的SQLiteDataBase對象,接下來就可以通過SQLiteDataBase對象來管理和、操作數據庫

3.而ContentProvider可以說是一個對外的接口,除了可以實現對SQLiteOpenHelper的封裝,還可以實現對文件操作、圖片操作、對象操作等實現封裝;

4.在多線程中使用SQLiteOpenHelper要考慮線程同步問題,而如果使用ContentProvider的話基本不用考慮;

首先我們先了解一下SQLiteDatabase裏面包含的方法,(ps:有點多,也有點煩,但是隻要耐下心來看,還是可以看懂的,我就是這麼過來的)

SQLite提供了一下的靜態方法來打開一個文件對應的數據庫:

 Static SQLiteDataBase openDatabase(String path,SQLiteDataBase.CursorFactory factory,int falgs)打開path文件所代表的SQLite的數據庫。

static SQLiteDataBase openOrCreateDataBase(file,SQLiteDataBase.Cursor Factory factory)打開或創建(如果文件不存在)field文件所代表的SQLite數據庫。

static SQLiteDataBase openOrCreateDataBase(String path, SQLiteDataBase)打開或創建(如果文件不存在)path文件所代表的SQLite數據庫。

在程序中獲得SQLiteDataBsase對象之後,接下來就可調用SQLiteDatabase的如下方法來操作數據庫了

  execSQL(String sql,Object[] bindArgs):執行定佔位符的SQL語句。

execSQL(String sql):執行SQL語句。

insert(string table,ContentValues,String WhereCalues,String[]):向執行表中插入數據

update(Stirng table,ContentValues values.String WhereCalues,String[]   WhereArgs)更新指定表中的數據

delete(String table,String WHereClaus,String[] whereArgs):刪除指定表中的特定數據

Cursor query(String table,Stirng[] colums,Stirng WhereCaluse,String[] whereargs,String having,Strig orderBy):對執行數據進行出詢。

Cursor query(String table,Stirng[] colums,Stirng WhereCaluse,String[] whereargs,String having,Strig orderBy,String limit):對執行數據表執行查詢。limit參數控制最多查詢幾條記錄(用於控制分頁的參數)

Cursor query(boolean distinct,String table,Stirng[] colums,Stirng WhereCaluse,String[] whereargs,String having,Strig orderBy,String limit):對指定表執行查詢語句。其中第一個參數控制是否去除重複值。

rawQuery(String sql,String[] selectionArgs):執行帶佔位符的sql查詢。

beginTransaction():開始事務

endTransaction():結束事務。

SQLiteOpenHelper類

常用的方法:

synchronzed SQLiteDataBase getReadableDatabase():以讀寫的方式打開數據庫對應的SQLiteDatabase對象

synchronzed SQLiteDataBase getWRitableDatabase():以寫的方式打開數據庫對應的SQLiteDatabase對象

abstract void onCreate(SQLiteDataBase db):當第一次創建數據庫時回調該方法。

abstract void onUpgrade(SQLiteDataBase db,int oldVersion, int newVersion):當數據庫版本更新時回調該方法

synchronized void close():關閉所有打開的SQLiteDataBase




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章