Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 使用Android中API建議的方式實現SQLite數據庫的增、刪、改、查的操作

使用Android中API建議的方式實現SQLite數據庫的增、刪、改、查的操作

編輯:關於Android編程

package com.examp.use_SQLite.dao;

import java.util.ArrayList;
import java.util.List;

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

import com.examp.use_SQLite.PersonSQLiteOpenHelper;
import com.examp.use_SQLite.domain.Person;

public class PersonDaoForAndroid {
	// 獲取要操作的數據庫對象
	private PersonSQLiteOpenHelper helper;

	/**
	 * 在構造方法中完成helper的初始化
	 * 
	 * @param context
	 */
	public PersonDaoForAndroid(Context context) {
		helper = new PersonSQLiteOpenHelper(context);
	}

	/**
	 * 添加數據
	 * 
	 * @param name姓名
	 * @param number電話
	 * @return 返回新插入一行的行ID,或者-1說明發生一個錯誤
	 */
	public long add(String name, String number) {
		// 獲取數據庫的連接對象
		SQLiteDatabase db = helper.getWritableDatabase();
		// 下面是API推薦的寫法
		ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("number", number);
		// 目標數據表
		// 返回新插入一行的行ID,或者-1說明發生一個錯誤
		long id = db.insert("person", null, values);
		// 及時的關閉數據庫連接
		db.close();
		return id;
	}

	/**
	 * 根據用戶姓名查詢數據
	 * 
	 * @param name
	 *            查詢條件
	 * @return 查詢結果
	 */
	public Person findByName(String name) {
		// 獲取數據庫連接
		SQLiteDatabase db = helper.getReadableDatabase();
		// 目標數據表名|指定返回的數據字段,如果設置null表示返回所有的數據字段|條件語句,不包括where關鍵字|條件的參數列表|分組的語句|having查詢的語句|排序的語句,如果不設置表示使用默認
		Cursor cursor = db.query("person", null, "name=?",
				new String[] { name }, null, null, null);

		// 聲明結果對象
		Person person = null;
		// 判斷是否有結果返回
		if (cursor.moveToNext()) {
			// 取出數據集中的單行數據的個字段的數據
			// cursor.getColumnIndex("id");獲取指定的字段的下標
			// cursor.getInt(index);或getString(index);是獲取指定的下標的數據index為int類型;
			int id = cursor.getInt(cursor.getColumnIndex("id"));
			String named = cursor.getString(cursor.getColumnIndex("name"));
			String number = cursor.getString(cursor.getColumnIndex("number"));
			// 實例化查詢結果數據對象
			person = new Person(id, named, number);
		}
		// 關閉數據庫連接,釋放資源
		db.close();
		// 返回數據結果對象
		return person;
	}

	/**
	 * 根據name更新一條數據
	 * 
	 * @param name
	 *            跟新條件
	 * @param newnumber
	 *            新的數據
	 * @return rows受影響的行數
	 */
	public int update(String name, String newnumber) {
		SQLiteDatabase db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("number", newnumber);
		// 目標數據表|要更新的數據|更新條件語句|更新條件參數列表
		int rows = db.update("person", values, "name=?", new String[] { name });
		db.close();
		return rows;
	}

	/**
	 * 根據指定的名字刪除數據
	 * 
	 * @param name
	 *            刪除條件
	 * @return rows受影響的行數
	 */
	public int delete(String name) {
		SQLiteDatabase db = helper.getWritableDatabase();
		// 目標數據庫表名稱|條件語句|條件參數
		int rows = db.delete("person", "name=?", new String[] { name });
		db.close();
		return rows;
	}

	/**
	 * 查詢所有的操作
	 * 
	 * @return 查詢的結果集
	 */
	public List findAll() {
		SQLiteDatabase db = helper.getReadableDatabase();
		Cursor cursor = db.query("person", null, null, null, null, null, null);
		// 聲明結果集
		// 初始化結果集
		List persons = new ArrayList();
		// 判斷是否有結果返回
		while (cursor.moveToNext()) {

			// 聲明結果對象
			Person person = null;
			// 取出數據集中的單行數據的個字段的數據
			// cursor.getColumnIndex("id");獲取指定的字段的下標
			// cursor.getInt(index);或getString(index);是獲取指定的下標的數據index為int類型;
			int id = cursor.getInt(cursor.getColumnIndex("id"));
			String named = cursor.getString(cursor.getColumnIndex("name"));
			String number = cursor.getString(cursor.getColumnIndex("number"));
			// 實例化查詢結果數據對象
			person = new Person(id, named, number);
			// 向結果集中添加數據
			persons.add(person);
		}
		// 關閉連接,釋放資源
		db.close();
		// 放回結果集
		return persons;
	}
}

其它的代碼參見另一篇博客Android實現SQLite數據庫的增、刪、改、查的操作
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved