1. SQLiteDatabase類 (對 SQLite數據庫增、刪、改、查的操作)
常用方法
1、execSQL(String sql);
2、execSQL(String sql, String[] args);
示例:刪除 person表中personId=1的記錄:
SQLiteDatabase db=this.getWritableDatabase();
db.execSQL(“delete from person where personId=?”,new
String[]{“1”});
db.execSQL(“delete from person where personId=1”);
提示:this是 SQLiteOpenHelper類的實例,該類稍後介紹。
3、long insert(TABLE_NAME, String nullColumnHack, ContentValues
contentValues);
作用:添加記錄。
參數-TABLE_NAME:表名。
參數-nullColumnHack:若插入的數據是空行,則本參數必須設置爲 null。
參數-contentValues:Map 類型的數據,每組鍵-值對代表一列及其該列的數據
4、int delete(TABLE_NAME, String where, String[] whereValue);
作用:刪除記錄。
參數-TABLE_NAME:表名。
參數-where:刪除的條件,相當於 SQL語句中的where部分的 SQL命令。
參數-whereValue:符合參數 where的數據。該值是 String[]類型的數組。
示例:刪除當前數據庫中表peson中,字段 personId值爲1的行,代碼如下:
delete(“person”,”personId=?”,newString[]{“1”});
5、int update(TABLE_NAME, contentValues,String where, String[] whereValue) ;
作用:更新記錄。
參數-TABLE_NAME:表名。
參數-contentValues:Map 類型的數據,每組鍵-值對代表一列及其該列的數據。可
存放多個鍵-值對數據,代表需要更新的數據。
參數-where:更新的條件,相當於 SQL語句中的where部分的 SQL命令。
參數-whereValue:符合參數 where的數據。該值是 String[]類型的數組。
示例:更新當前數據庫的person表中,personId=1的記錄,代碼如下:
ContentValues values=new ContentValues();//創建可存操作的鍵-值對的對
象
values.put(“name”,”李四”);//存放姓名數據
values.put(“phone”,”13315577889”);//存放電話數據
//實例化SQLiteDatabase對象
SQLiteDatabase db=this.getWritableDatabase();
db.update(“person” ,values,”personId=?”,new String[]{“1”);//更新
數據
6、Cursor rawQuery(String sql,String[]selectionArgs);
作用:執行帶佔位符的 SQL查詢,返回的結果集存放在 Cursor對象中。
參數-sql:查詢的 SQL命令。
參數-selectionArgs:查詢的條件數據。
提示:
(1)Cursor類稍後介紹。
(2)若 sql中沒有佔位符,則第二個參數設置爲 null。
(3) 對數據表進行變更操作時,使用execSQL,對數據表進行查詢時,使用rawQuery
方法。
7、 Cursorquery(table,projection,selection,selectionArgs,groupby,having,orderby)
作用:執行帶佔位符的 SQL查詢,返回的結果集存放在 Cursor對象中。
cursor : 返回值類型,返回查詢結果遊標對象。
table : String ,要查詢的表名。
projection : String[] ,要查詢的列名,如果爲 null,則查詢所有列。
selection : String,查詢條件。
selectionArgs:String[]爲selection中的?補值的數組。
groupby : String,分組列的列名。
having:String,分組在查詢的條件。
orderby:String 排序列的列名。
8、Context.openOrCreateDatabase(Stringdbname,int mode);
作用:打開數據庫,若數據庫未創建則創建數據庫。
參數-dbname:數據庫文件名。
參數-mode:訪問權限,有以下常量選擇:
1、MODE_PRIVATE:不允許其它應用程序訪問本數據庫。
2、MODE_WORLD_READABLE:允許其它應用程序讀本數據庫。
3、MODE_WORLD_WRITEABLE:允許其它應用程序寫本數據庫。
4、MODE_APPEND:若數據庫已存在,則允向數據庫中許添加數據。
(三)ContentValues類
1.概述
ContentValues類包裝了HashMap類,該類用於存取鍵-值對的數據,每個鍵-值對數
據表示一列的列名和該列的數據。
2.常用方法
1、ContentValues();
作用:無參構造方法,創建一個內部成員變量爲 HashMap<String,Object>的對象。該
成員變量名爲 mValues。
示例:ContentValues values=new ContentValues();
2、void put(String key,Object value);
作用:向成員變量 mValues中存放一個鍵-值對數據。
提示:value可以是 Java的所有基本數據類型、數組、對象的類型。
3、Object get(String key);
作用:獲取鍵名 key對應的值。
4、XXX getAsXXX(String key);
作用:返回 XXX類型的值。
提示:XXX可以是所有基本類型的包裝類,如 Integer,還有AsByteArray(字節數組
類型)。
(四)SQLiteOpenHelper類
1.概述
SQLiteOpenHelper類是Android提供的用於操作 SQLite數據庫的工具類,該工具類能
方便地創建數據庫、表,以及管理數據庫版本。
2.常用方法
1、 synchronized SQLiteDatabasegetReadableDatabase();
作用:以讀寫的方式打開數據庫對應的 SQLiteDatabase類的對象。
提示:synchronized關鍵字定義該方法爲線程同步。
2、 synchronized SQLiteDatabasegetWriteableDatabase();
作用:以寫的方式創建或打開數據庫對應的 SQLiteDatabase類的對象。
3、 abstract onCreate(SQLiteDatabase db);
作用:首次創建數據庫時,回調本方法。