还记得getReadableDatabase()和getWritableDatabase()方法吧?在调用它们的时候会返回一个SQLiteDatabase对象,借助这个对象就可以进行CURD(Create添加、Update更新、 Retrieve查询、Delete删除)工作了。
1.Create——insert()
insert()接受三个参数,第一个是表名,第二个是给可为空的列自动复制Null,一般只需要传入null即可,第三个参数是一个ContentValues对象,它提供了一系列的put()方法重载,用于向ContentValues中添加数据,只需要传入每个类名以及对应的数据即可。
eg:
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
// 开始组装第一条数据
values.put("name", "The Da Vinci Code");
values.put("author", "Dan Brown");
values.put("pages", 454);
values.put("price", 16.96);
db.insert("Book", null, values); // 插入第一条数据
values.clear();
// 开始组装第二条数据
values.put("name", "The Lost Symbol");
values.put("author", "Dan Brown");
values.put("pages", 510);
values.put("price", 19.95);
db.insert("Book", null, values); //
2.Update——update(),接收4个参数,第一个参数是表名,第二个参数是ContentValues对象,第三、第四个参数是用于约束更新某一行或者某几行的数据,不指定则默认更新所有行,第三个参数对应的是SQL中的 where 第四个参数对应的是SQL中的条件。
ContentValues values = new ContentValues();
values.put("price", 10.99);
db.update("Book", values, "name = ?", new String[] { "The Da
Vinci Code" });
3.Delete——delete(),接收3个参数,第一个是表名,第二、第三个则是约束删除某一行或者某几行的数据,不指定则默认删除所有行。
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("Book", "pages > ?", new String[] { "500" });
4.Retrieve——query(),接收7个参数(只说最短那个),第一个参数为表名,第二个参数用于查询哪几列,不指定则默认为查询所有列,第三个、第四个参数用于约束默认查询为某一行或者某几行的数据,不指定则默认为查询所有行的数据,第五个参数用于是否进行group by操作,不指定则默认不进行,第六个参数用户对group by参数进行过滤,不指定则默认为不过滤,第七个参数用于指定查询结果的排序方式,不指定则默认为默认排序方式。调用query()方法会返回一个Cursor对象,查询到的数据都从这个对象中取出。
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 查询Book 表中所有的数据
Cursor cursor = db.query("Book", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
// 遍历Cursor 对象,取出数据并打印
String name = cursor.getString(cursor.
getColumnIndex("name"));
String author = cursor.getString(cursor.
getColumnIndex("author"));
int pages = cursor.getInt(cursor.getColumnIndex
("pages"));
double price = cursor.getDouble(cursor.
getColumnIndex("price"));
Log.d("MainActivity", "book name is " + name);
Log.d("MainActivity", "book author is " + author);
Log.d("MainActivity", "book pages is " + pages);
Log.d("MainActivity", "book price is " + price);
} while (cursor.moveToNext());
}
cursor.close();