Android開發筆記-SQLite類別中進行增刪改查

內容說明:在 SQLiteOpenHelper 類別裡進行增刪改查

資料來源:Android南部工作坊

在「建立SQLite實作類別」一文中已說明在 SQLiteOpenHelper 類別裡產生資料表的方式,並且宣告了一個「private SQLiteDatabase db;」物件變數,透過這個 db 變數可以對資料庫進行增刪改查的操作。

查詢

進行資料庫查詢時,必需建立一個方法回傳 Cursor 物件。查詢的方式有兩種。

// 取得所有記錄
    public Cursor getAll() {
        return db.rawQuery("SELECT * FROM table_name", null);
    }
// 取得所有記錄
    public Cursor getAll() {
        return db.query("table_name",       //資料表名稱
        new String[] {"_ID", "name", "value"},  //欄位名稱
        null, // WHERE
        null, // WHERE 的參數
        null, // GROUP BY
        null, // HAVING
        null  // ORDOR BY
        );
    }
    // 取得一筆紀錄
    public Cursor get(long rowId) throws SQLException {
        Cursor cursor = db.query(true,
        "table_name",               //資料表名稱
        new String[] {"_ID", "name", "value"},  //欄位名稱
        "_ID=" + rowId,             //WHERE
        null, // WHERE 的參數
        null, // GROUP BY
        null, // HAVING
        null, // ORDOR BY
        null  // 限制回傳的rows數量
        );

        // 注意:不寫會出錯
        if (cursor != null) {
            cursor.moveToFirst();   //將指標移到第一筆資料
        }
        return cursor;
    }

新增

//新增一筆記錄,成功回傳rowID,失敗回傳-1
    public long create(String name, String value) {
        ContentValues args = new ContentValues();
        args.put("name", name);
        args.put("value", value);

        return db.insert("table_name", null, args);
    }

刪除

//刪除記錄,回傳成功刪除筆數
    public int delete(long rowId) {
        return db.delete("table_name",  //資料表名稱
        "_ID=" + rowId,         //WHERE
        null                //WHERE的參數
        );
    }

修改

//修改記錄,回傳成功修改筆數
    public int update(long rowId, String value) {
        ContentValues args = new ContentValues();
        args.put("value", value);

        return db.update("table_name",  //資料表名稱
        args,               //VALUE
        "_ID=" + rowId,         //WHERE
        null                //WHERE的參數
        );
    }

關連文章:使用Cursor讀取SQLite回傳值