Android開發學習之SQLite

在前面的一篇文章中,我給大傢介紹瞭SQLite這樣一個開源、免費的數據庫,並給出瞭C#ADO.Net模式下的代碼。其實,不隻是在C#中可以使用SQLite,在Android中同樣提供瞭SQLite並作為整個系統的數據庫供大傢使用,考慮到數據庫在實際開發中的重要性,所以,我們今天就來學習Android中SQLite的用法。數據庫的操作無外乎增加、刪除、修改、更新四種操作。在Android中,我們可以使用原生的SQL和Android封裝好的接口對SQLite進行操作,我們選擇後一種,使用Android封裝好的接口,要使用該接口,我們必須繼承一個稱為SQLiteOpenHelper的輔助類。下面我們來看代碼:

package com.Android.SQLiteHelper;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DataBaseHelper extends SQLiteOpenHelper
{
	//數據庫名
    private final static String DataBaseName="Students.db";
    //數據表名
    private final static String DataTableName="Student";
    //創建數據表SQL語句
    private final static String CreateTable="CREATE TABLE Student(id integer primary key autoincrement,name text,age text,sex text)";
    //構造函數
	public DataBaseHelper(Context c) 
	{
		super(c, DataBaseName, null, 1);
	}
    //創建數據表
	@Override
	public void onCreate(SQLiteDatabase db) 
	{
		db.execSQL(CreateTable);
	}
	//插入數據
	public void Insert(ContentValues values)
	{
		SQLiteDatabase db = getWritableDatabase();
		db.insert(DataTableName, null, values);
		db.close();
	}
	//請求數據,參數依次為數據表名,待查詢關鍵字,查詢表達式,查詢表達式值,排序字段
	//這個方法用起來還有點問題,暫時註釋掉,等解決瞭再告訴大傢
	//public Cursor Query(String TableName,String[] KeyWords,String Express,String[] ExpressArgs,String OrderBy)
	public Cursor Query()
	{		
		SQLiteDatabase db = getWritableDatabase();
		Cursor c = db.query(DataTableName, null, null, null, null, null, null);
		return c;
	}
	//刪除數據
	public void Delete(String TableName,String Express,String[] ExpressArgs)
	{
		SQLiteDatabase db = getWritableDatabase();
		db.delete(TableName, Express, ExpressArgs);
		db.close();
	}
	//使用原生的SQL
	public void ExecSQL(String SQLString)
	{
		SQLiteDatabase db = getWritableDatabase();
		db.execSQL(SQLString);
	}
    //更新數據庫
	@Override
	public void onUpgrade(SQLiteDatabase db, int Last, int Now) 
	{
		//暫時不用,所以不寫,如果需要,就是刪除舊表,創建新表的過程
	}

}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *