SQLite的使用

1. SQLiteDatabase  (對 SQLite數據庫增、刪、改、查的操作)

  常用方法

 

   1execSQL(String  sql);

   2execSQL(String sql, String[] args);

 

示例:刪除 person表中personId1的記錄:

  SQLiteDatabase db=this.getWritableDatabase();

      db.execSQL(“delete from  person where personId=?”,new

  String[]{“1”});

   db.execSQL(“delete from  person where personId=1”);

  提示:this SQLiteOpenHelper類的實例,該類稍後介紹。

 

  3long insert(TABLE_NAME, String nullColumnHack, ContentValues   

 

contentValues);

  作用:添加記錄。

  參數-TABLE_NAME:表名。

  參數-nullColumnHack:若插入的數據是空行,則本參數必須設置爲 null

  參數-contentValuesMap 類型的數據,每組鍵-值對代表一列及其該列的數據

 

4int delete(TABLE_NAME, String  where, String[]  whereValue);

作用:刪除記錄。

參數-TABLE_NAME:表名。

參數-where:刪除的條件,相當於 SQL語句中的where部分的 SQL命令。

參數-whereValue:符合參數 where的數據。該值是 String[]類型的數組。

示例:刪除當前數據庫中表peson中,字段 personId值爲1的行,代碼如下:

delete(“person”,”personId=?”,newString[]{“1”});

5int update(TABLE_NAME, contentValues,String  where, String[] whereValue) ;

作用:更新記錄。

參數-TABLE_NAME:表名。

參數-contentValuesMap 類型的數據,每組鍵-值對代表一列及其該列的數據。可

存放多個鍵-值對數據,代表需要更新的數據。

 

參數-where:更新的條件,相當於 SQL語句中的where部分的 SQL命令。

參數-whereValue:符合參數 where的數據。該值是 String[]類型的數組。

示例:更新當前數據庫的person表中,personId1的記錄,代碼如下:

ContentValues  values=new ContentValues();//創建可存操作的鍵-值對的對

values.put(“name”,”李四”);//存放姓名數據

values.put(“phone”,”13315577889”);//存放電話數據

//實例化SQLiteDatabase對象

SQLiteDatabase db=this.getWritableDatabase();

db.update(“person” ,values,”personId=?”new String[]{“1”);//更新

數據

6Cursor 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 排序列的列名。

8Context.openOrCreateDatabase(Stringdbname,int mode);

 作用:打開數據庫,若數據庫未創建則創建數據庫。

 參數-dbname:數據庫文件名。

 參數-mode:訪問權限,有以下常量選擇:

  1MODE_PRIVATE:不允許其它應用程序訪問本數據庫。

  2MODE_WORLD_READABLE:允許其它應用程序讀本數據庫。

  3MODE_WORLD_WRITEABLE:允許其它應用程序寫本數據庫。

  4MODE_APPEND:若數據庫已存在,則允向數據庫中許添加數據。

 

()ContentValues

1.概述

 ContentValues類包裝了HashMap類,該類用於存取鍵-值對的數據,每個鍵-值對數

據表示一列的列名和該列的數據。

2.常用方法

1ContentValues();

 作用:無參構造方法,創建一個內部成員變量爲 HashMap<String,Object>的對象。該

成員變量名爲 mValues

 示例:ContentValues values=new ContentValues();

2void put(String key,Object value);

 作用:向成員變量 mValues中存放一個鍵-值對數據。

 提示:value可以是 Java的所有基本數據類型、數組、對象的類型。

3Object get(String key);

 作用:獲取鍵名 key對應的值。

4XXX 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);

作用:首次創建數據庫時,回調本方法。

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