Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中的SQLite數據庫

Android中的SQLite數據庫

編輯:關於Android編程

SQLite是一種輕量級的關系型數據庫,它體積小,零配置,可以直接運行在應用程序的進程中,非常適合嵌入式的操作系統。

首先要創建一個SQLite數據庫

通過類來實現SQLiteHelper這個抽象類,

public class PersonSqliteHelper extends SQLiteOpenHelper {

	public PersonSqliteHelper(Context context) {
		super(context, "person.db", null, 1);
	}
裡面有四個參數分別是context,數據庫名稱,工廠,和版本

傳的參數本來有四個,只需要保留一個就好了。

	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table person (id integer primary key autoincrement,name varchar(20),number varchar(20))");

	}
onCreate是數據庫第一次被創建時調用的方法

這些還沒有真正的創建數據庫

		PersonSqliteHelper p=new PersonSqliteHelper(this);
		p.getWritableDatabase();

這樣才算創建了一個數據庫。

有getReadableDatabase()和getWritableDatabase()兩個方法可用。

下面通過一些常見的操作來演示一下SQLite的增刪該查操作

	private PersonSqliteHelper helper;

	// 在構造函數裡完成helper的初始化

	public PersonDao(Context context) {

		helper = new PersonSqliteHelper(context);
	}


添加數據


	/**
	 * 添加一條數據到數據庫
	 * @param name 姓名
	 * @param number 電話號碼
	 * @return 返回插入的數據的id
	 * */
	private boolean find(String name) {
		SQLiteDatabase db = helper.getReadableDatabase();
		Cursor cursor = db.query("person", null, "name=?",new String[] { name }, null, null, null);
		boolean result = cursor.moveToNext();
		cursor.close();
		db.close();
		return result;
	}

在上面的代碼中首先通過ContentValues創建了一個容器,然後通過put()方法將數據添加到ContentValues容器中,最後通insert()方法再分配到數據表中。

返回的值是新創建的一行的id.


查詢數據


	/**
	 * 查詢一條記錄是否存在
	 * @param name 姓名
	 * @return true 存在 false 不存在
	 * */
	private boolean find(String name) {
		SQLiteDatabase db = helper.getReadableDatabase();
		Cursor cursor = db.query("person", null, "name=?",new String[] { name }, null, null, null);
		boolean result = cursor.moveToNext();
		cursor.close();
		db.close();
		return result;
	}



修改數據


	/**
	 * 修改一條記錄
	 * @param name 要修改信息的人的姓名
	 * @param newNumber 新的電話號碼
	 * @return 返回受影響的記錄的條數
	 * */
	private int updata(String name,String newNumber){
		SQLiteDatabase db=helper.getWritableDatabase();
		ContentValues values=new ContentValues();
		
		values.put("number", newNumber);
		int numbers=db.update("person", values, "name=?", new String[]{name});
		db.close();
		return numbers;
	}


刪除數據


	/**
	 * 刪除一條數據
	 * @param name 姓名
	 * */
	private int del(String name){
		SQLiteDatabase db=helper.getWritableDatabase();
		int number=db.delete("person", "name=?", new String[]{name});
		db.close();
		return number;
	}


查詢數據


	/**
	 * 返回全部的數據信息
	 * */
	public List findAll(){
		SQLiteDatabase db=helper.getReadableDatabase();
		List persons=new ArrayList();
		Cursor cursor=db.query("person", new String[]{"id","name","number"}, null, null, null, null, null);
		while (cursor.moveToNext()) {
			int id=cursor.getInt(cursor.getColumnIndex("id"));
			String name=cursor.getString(cursor.getColumnIndex("name"));
			String number=cursor.getString(cursor.getColumnIndex("number"));
			Person p=new Person(id, name, number);
			persons.add(p);
			
		}
		cursor.close();
		db.close();
		return persons;}

}

數據庫中的事物

所謂的事務處理就是保證操作的完整性,所有操作要麼同時成功,要麼同時失敗。

在SQLite中,事物的使用方法如下:

1、首先通過beginTransation()開始一個事物。

2、通過setTransactionSuccessful()設置一個事物成功的標志。

3、如果調用了以上第二步則成功地提交了事物,結束事物,否則回滾事物。方法為endTransaction().

比如:

		db.beginTransaction();
		try {
			......//其他部分語句體
			db.setTransactionSuccessful();
		}finally{
			db.endTransaction();
		}




  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved