数据库基本使用

继承SQLiteOpenHelper数据库类

public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {

	//数据库的构造方法,用来定义数据库的名称 数据库查询的结果集 数据库的版本
	public PersonSQLiteOpenHelper(Context context) {
		super(context, "person.db", null, 1);
		// TODO Auto-generated constructor stub
	}

	/**
	 * 数据库第一次被创建的时候调用的方法
	 * db 被创建的数据库
	 */
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		//初始化数据库的表结构
		db.execSQL("create table person (id integer primary key autoincrement,name varchar(20),number varchar(20))");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub

	}

}

创建数据库得到一个可写的数据库对象

PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper(this);
SQLiteDatabase db = helper.getWritableDatabase();


数据库的基本操作

public class PersonDao2 {
	private PersonSQLiteOpenHelper helper;
	//在构造方法里面完成helper的初始化
	public  PersonDao2(Context context){
		helper = new PersonSQLiteOpenHelper(context);
	}
	
	/*
	 * 添加一条记录到数据库
	 */
	public void 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);
		db.insert("preson", null, values);	//返回一个long。-1:添加失败
		db.close();
	}
	
	/*
	 * 查询记录是否存在
	 */
	public boolean find(String name){
		SQLiteDatabase db = helper.getReadableDatabase();
		//Cursor cursor = db.rawQuery("select * from perons 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;
	}
	
	/*
	 * 修改一条记录
	 * name 要修改的人的姓名
	 * newnumber 新的号码
	 */
	public void update(String name,String newnumber){
		SQLiteDatabase db = helper.getWritableDatabase();
		//db.execSQL("update person set number=? where name=?", new String[]{newnumber,name});
		ContentValues values = new ContentValues();
		values.put("number", newnumber);
		db.update("person", values, "name=?", new String[]{name});
		db.close();
		}
	
	/*
	 * 删除一条记录
	 */
	public void delete(String name){
		SQLiteDatabase db = helper.getWritableDatabase();
		//db.execSQL("delete from person where name=?", new String[]{name});
		db.delete("person", "name=?", new String[]{name});
		db.close();
	}
	
	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(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;
	}
}



数据库事件

//开始数据库的事物
db.beginTransaction();
		try {
		    db.update("person", values, "name=?", new String[]{name});
		    db.setTransactionSuccessful();
		   } finally {
		    db.endTransaction();
		    db.close();
		   }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值