回覆列表
  • 1 # 老德肥老於

    1、使用insert方法插入記錄

    SQLiteDatabase的insert方法的簽名為longinsert(Stringtable,StringnullColumnHack,ContentValuesvalues),這個插入方法的引數說明如下:

    table:代表想插入資料的表名。

    nullColumnHack:代表強行插入null值的資料列的列名。

    values:代表一行記錄的資料。

    insert方法插入的一行記錄使用ContentValues存放,ContentValues類似於Map,它提供了put(Stringkey,Xxxvalue)(其中key為資料列的列名)方法用於存入資料、getAsXxx(Stringkey)方法用於取出資料。

    例如如下語句:

    ContentValuesvalues=newContentValues();

    values.put("age",500);

    //返回新添記錄的行號,該行號是一個內部直,與主鍵id無關,發生錯誤返回-1

    longrowid=db.insert("person_inf",null,values);

    2、使用update方法更新資料

    SQLiteDatabase的update方法簽名為update(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs),這個更新方法的引數說明如下:

    table:代表想要更新資料的表名。

    values:代表想要更新的資料。

    whereClause:滿足該whereClause子句的記錄將會被更新。

    whereArgs:用於為whereArgs子句傳遞引數。

    例如我們想要更新person_inf表中所有主鍵大於20的人的人名,可呼叫如下方法:

    ContentValuesvalues=newContentValues();

    //存放更新後的人名

    values.put("name","新人名");

    intresult=db.update("person_inf",values,"_id>?",newInteger[]{20});

    whereArgs:用於為whereArgs子句傳入引數。

    intresult=db.delete("person_inf","person_namelike?",newString[]{"孫_"});

    4、使用query方法查詢記錄

    SQLiteDatabase的query方法簽名為Cursorquery(booleandistinct,Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit),這個query方法的引數說明如下。

    distinct:指定是否去除重複記錄。

    table:執行查詢資料的表名。

    columns:要查詢出來的列名。

    selection:查詢條件子句。

    selectionArgs:用於為selection子句中佔位符傳入引數值,值在陣列中的位置與佔位符在語句中的位置必須一致,否則就會有異常。

    groupBy:用於控制分組。

    having:用於對分組進行過濾。

    orderBy:用於對記錄進行排序。

    limit:用於進行分頁。

    例如查詢出person_inf表中人名以孫開頭的資料

    Cursorcursor=db.query("person_inf",newString[]{"_id,name,age"},"namelike?",newString[]{"孫%"},null,null,"personiddesc","5,10");

    cursor.close();

  • 中秋節和大豐收的關聯?
  • 城市軌道交通停車線設計原則是什麼?