继承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();
}