歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android數據庫之SQLiteDatabase類

實現數據庫基本操作

數據庫創建的問題解決了,接下來就該使用數據庫實現應用程序功能的時候了。基本的操作包括創建、讀取、更新、刪除,即我們通常說的CRUD(Create, Read, Update, Delete)。在實現這些操作的時候,我們會使用到兩個比較重要的類,SQLiteDatabase類和Cursor類。

SQLiteDatabase類在上面已經接觸過了,這個類是核心類,用於管理和操作SQLite數據庫,幾乎所有的數據庫操作,最終都將由這個類完成。

Cursor類主要用於保存查詢返回的結果,提供隨機讀、寫的功能,從這一點上來看,有點類似於ado中的Dataset。Cursor類非常重要,在數據庫操作中,在UI中,經常會用到Cursor,所以大家一定要掌握Cursor 的用法。

下面我們用實例來說明如何實現CRUD操作。首先,我們創建一個客戶資料相關的數據存取類,在這個類中,我們實現基本的增刪改查等操作,需要的話,大家可以自己添加其它的代碼等等,這裡我們只是演示數據庫的基本操作。

限於篇幅,這裡就不詳細解釋了,代碼中都有詳細的注釋,如下所示:

view plaincopy to clipboardprint?


package com.yulingkong.customer;


//為了節省篇幅,忽略了import項,請自行添加


public
class CustomerAL {

// 表名稱

private
static
final String TABLE_NAME = "Customers";


private SQLiteDatabase mDB;


/**
    * CustomerAL構造函數
    * @param db SQLiteDatabase類實例
    */

public CustomerAL(SQLiteDatabase db) {
        mDB = db;
    }


/**
    * 添加客戶資料
    * @param name 客戶姓名
    * @param address 客戶地址
    */

public
long add(String name, String address) {

// 使用ContentValues保存列和列對應的值
        ContentValues values = new ContentValues();

        values.put("Name", name);
        values.put("Address", address);


// 調用SQLiteDatabase類的insert函數添加記錄

return mDB.insert(TABLE_NAME, null, values);
    }


/**
    * 刪除客戶資料
    * @param id 客戶的id號
    */

public
int delete(long id) {

// 查詢條件語句
        String[] whereArgs = new String[]{Long.toString(id)};

// 查詢匹配條件,與selection要對應
        String whereClause = "_id=?";


// 調用SQLiteDatabase類的delete函數刪除記錄

return mDB.delete(TABLE_NAME, whereClause, whereArgs);
    }


/**
    * 根據客戶的id,查詢客戶的資料,查詢結果保存在Cursor中
    * @param id 客戶的id號
    */

public Cursor getById(long id) {

// 要返回的列
        String[] columns = new String[]{"Name", "Address"};

// 查詢條件語句
        String selection = "_id=?";

// 查詢匹配條件,與selection要對應
        String[] selectionArgs = new String[]{Long.toString(id)};


// 調用SQLiteDatabase類的query函數查詢記錄

return mDB.query(TABLE_NAME, columns, selection, selectionArgs, null, null, null);
    }


/**
    * 返回所有的客戶資料
    */

public Cursor getAll() {

// 需要返回的列
        String[] columns = new String[]{"Name", "Address"};


// 調用SQLiteDatabase類的query函數查詢記錄

return mDB.query(TABLE_NAME, columns, null, null, null, null, null);
    }
}

Copyright © Linux教程網 All Rights Reserved