android:SQLite應用

來源:互聯網
上載者:User

Android開發:SQLite應用
SQLite是一個很小的關係型資料庫,它雖然小,但是有比較全面的功能。也正是因為小,使用時佔用的手機資源也就少,也就更加適用手機。
下面講講SQLite在Android開發中的簡單應用:
在SQLite中的資料庫為SQLiteDatabase類的對象,要得到一個SQLiteDatabase對象,一般需要藉助SQLiteOpenHelper資料庫輔助類。SQLiteOpenHelper是一個抽象類別,使用時需要自訂一個類去繼承該抽象類別,同時要實現該抽象類別中的抽象建構函式和抽象方法。
使用步驟如下:
1.定義一個DataBaseHelper類,這個類繼承SQLiteOpenHelper抽象類別。同時要實現SQLiteOpenHelper抽象類別中的建構函式和onCreate()方法與onUpgrade()。onCreate()與onUpgrade()是兩個回調方法(函數)。onCreate()在第一次建立資料庫時調用,實際上是在第一次得到資料庫的時候才會調用。onUpgrade()是在資料庫更新版本時調用。
2.寫好資料庫輔助類後,在Activity類中執行個體化DataBaseHelper輔助類
DataBaseHelper dh = 執行個體化DataBaseHelper類
3.通過DataBaseHelper的執行個體化對象dh調用getReadableDatabase()方法或者getWritableDatabase()方法。前者得到一個可讀資料庫,後者讀到一個可寫資料庫,可以根據需要選擇不同的擷取資料庫的方法得到不同類型的資料庫,如只是為了查詢,則得到可讀資料庫即可,增、刪、改,則需要調用getWritableDatabase()方法擷取一個可寫的資料庫。
4.得到資料庫後,就可以調用資料庫的方法,來執行SQL語句,常用的有方法有
1)insert()插入資料
2)Delete()刪除資料
3)Update()修改資料
4)Query()查詢資料
5)execSQL()一般的SQL語句執行方法,如建立表
 
 
 
DatabaseHelper類程式碼範例:
 
Java代碼 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteDatabase.CursorFactory; 
import android.database.sqlite.SQLiteOpenHelper; 
 
public class DatabaseHelper extends SQLiteOpenHelper { 
    // 在SQLiteOpenHelper的子類中必須要有這個建構函式 
    // context:Activity類的對象,,Acticity繼承了Context類 
    // name:資料庫的名字 
    // factory:給它傳空值即可 
    public DatabaseHelper(Context context, String name, CursorFactory factory, 
            int version) { 
        super(context, name, factory, version); 
    } 
 
    // 該函數是在第一次建立資料庫時調用,實際上是第一次得到SQLiteDatabase對象時調用 
    // 如果該資料庫已經被建立了,則不再調用該方法 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
        // TODO Auto-generated method stub 
        System.out.println("資料庫已經建立成功"); 
        db.execSQL("create table user(id int,name varchar(20))");//建立表的SQL語句 
 
    } 
 
    // 該回呼函數在資料庫版本更改時調用 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
        // TODO Auto-generated method stub 
        System.out.println("onUpgrade回呼函數執行了"); 
    } 
 

 
insert()方法應用詳析
Java代碼 
//樣本化DatabaseHelper類,第一個參數為當前Activity對象,第二個參數為資料庫名 
            //第4個參數為資料庫的版本號碼,版本號碼一定是正數 
            DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this, 
                    "testdb", null, 1); 
            //ContentValues類似於Map,儲存的也是索引值對。 
            //鍵為表中的列名,值即為要在該列中插入的資料 
            ContentValues values = new ContentValues(); 
            //要在id欄位插入1,在name欄位插入"zhangsan" 
            values.put("id", 1); 
            values.put("name", "zhangsan"); 
            //得到可寫資料庫物件 
            SQLiteDatabase db = dbhelper.getWritableDatabase(); 
            //調用插入資料的方法。第一個參數表示表名,第二個參數為null,表示沒有插入資料的欄位的值為null; 
            //第三個參數即為要插入的資料的索引值對 
            //該函數有一個long型的傳回值。在平常的資料庫中返回的是影響的行數,在SQLite資料庫中返回的是插入的資料的row ID 
            db.insert("user", null, values); 
            System.out.println("插入了一行記錄");

 

本文出自“fhappy”
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.