快速使用SQLiteDatabase
1.重写SQLiteOpenHelper
public class DbOpenHelper extends SQLiteOpenHelper {
public DbOpenHelper(Context context, String name, int version) {
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table contact (_id integer primary key autoincrement," +
"name varchar(10),phone varchar(15))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 当数据库发生更新时,再此处更新数据库的表
}
}
2.基本操作
1.创建或者打开数据库
dbHelper = new DbOpenHelper(this, this.getFilesDir().toString() + "/contacts.db3", 1);
2.增操作
dbHelper.getReadableDatabase().execSQL("insert into contact values(null , ? , ?)",
new String[]{nameStr, phoneStr});
3.查找并显示结果
要注意查找操作和其它操作不同会返回一个对象
//执行查询操作
Cursor cursor = dbHelper.getReadableDatabase().rawQuery(
"select * from contact where name ==? or phone==?",
new String[]{nameOrPhoneStr, nameOrPhoneStr});
//显示查询结果
inflateList(cursor);
//把查询结果cursor,填充显示到ListView控件中
//自定义方法
private void inflateList(Cursor cursor) {
// 填充SimpleCursorAdapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
MainActivity.this, R.layout.cell, cursor, new String[]{"name", "phone"},
new int[]{R.id.tv_Name, R.id.tv_Phone}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER
);
// 显示数据
ListView lv_show = findViewById(R.id.lv_show);
lv_show.setAdapter(adapter);
}
我们用cursor封装结果,然后用SimpleCursorAdapter适配,这些都是android本身提供给我们的类,非常容易最终实现listview。
4.关闭数据库
我们可以在onDestroy()函数里写上
//当前Activity销毁前onDestroy()函数会被回调
@Override
protected void onDestroy() {
super.onDestroy();
// 退出程序时关闭MyDatabaseHelper里的SQLiteDatabase
dbHelper.close();
}
完成~