利用系统api实现数据库的增删改查 →数据库的增删改查

PersonDao类

package org.gentry.db.dao;

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

import org.gentry.db.PersonSQLiteOpenHelper;
import org.gentry.db.domain.Person;

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

public class PersonDao {
	private PersonSQLiteOpenHelper helper;

	// 在构造方法里面完成helper的初始化
	public PersonDao(Context context) {
<span style="white-space:pre">		</span>helper = new PersonSQLiteOpenHelper(context);
	}

	/**
	 * 添加一条记录到数据库
	 * 
	 * @param name
	 *            姓名
	 * @param number
	 *            电话
	 */
	public long add(String name, String number) {
		SQLiteDatabase db = helper.getWritableDatabase();

		// db.execSQL("insert into person (name, number) values (?, ?)", new
		// Object[] { name, number });
		ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("number", number);
		long id = db.insert("person", null, values);

		db.close();
		return id;
	}

	/**
	 * 查询记录是否存在
	 * 
	 * @param name
	 *            姓名
	 * @return true 存在 false 不存在
	 */
	public boolean find(String name) {
		SQLiteDatabase db = helper.getReadableDatabase();

		// Cursor cursor = db.rawQuery("select * from person where name = ?",
		// new String[] { name });
		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 number
	 *            新的号码
	 */
	public int update(String name, String number) {
		SQLiteDatabase db = helper.getWritableDatabase();

		// db.execSQL("update person set number = ? where name = ?", new
		// Object[] {
		// number, name });
		ContentValues values = new ContentValues();
		values.put("number", number);
		int rowNumber = db.update("person", values, "name=?",
				new String[] { name });

		db.close();
		return rowNumber;
	}

	/**
	 * 删除一条记录
	 * 
	 * @param name
	 *            姓名
	 */
	public int delete(String name) {
		SQLiteDatabase db = helper.getWritableDatabase();

		// db.execSQL("delete from person where name = ?", new Object[] { name
		// });
		int number = db.delete("person", "name=?", new String[] { name });

		db.close();
		return number;
	}

	/**
	 * 返回全部数据库的信息
	 * 
	 * @return
	 */
	public List<Person> findAll() {
		SQLiteDatabase db = helper.getReadableDatabase();
		List<Person> persons = new ArrayList<Person>();

		// Cursor cursor = db.rawQuery("select * from person", null);
		Cursor cursor = db.query("person", new String[] { "name", "id",
				"number" }, null, null, null, null, null);

		while (cursor.moveToNext()) {
			// int id = cursor.getInt(0); // 拿到第一列id的值(int类型)
			// String name = cursor.getString(1); // 拿到第二列name的值(String类型)
			// String number = cursor.getString(2); // 拿到第三列number的值(String类型)
			int id = cursor.getInt(cursor.getColumnIndex("id")); // 拿到id所在列的值(int类型)
			String name = cursor.getString(cursor.getColumnIndex("name")); // 拿到name所在列的值(String类型)
			String number = cursor.getString(cursor.getColumnIndex("number")); // 拿到number所在列的值(String类型)
			Person p = new Person(id, name, number);
			persons.add(p);
		}
		cursor.close();
		db.close();
		return persons;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值