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”