您的位置:首页 > 数据库

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

2014-07-29 11:47 417 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐