执行插入、读取、删除、更新操作有两种不同的方式:
- 编写参数化查询(推荐)
- 编写原始查询
参数化查询:这些是使用内置函数执行插入、读取、删除或更新数据的查询。这些操作相关的函数都提供在SQLiteDatabase
class.
原始查询:这些是简单的 sql 查询,类似于其他数据库,如 MySql、Sql Server 等,在这种情况下,用户必须将查询编写为文本并将查询字符串传递给rawQuery(String sql,String [] selectionArgs)
or execSQL(String sql,Object [] bindArgs)
方法来执行操作。
重要的提示:Android文档不建议使用原始查询来执行插入、读取、更新、删除操作,始终使用SQLiteDatabase
类的插入、查询、更新、删除功能。
以下是插入数据的原始查询的示例:
public void insertItem(Item item) {
String query = "INSERT INTO " + ItemTable.NAME + " VALUES (0,?,?)";
SQLiteDatabase db = getWritableDatabase();
db.execSQL(query, new String[]{item.name, item.description});
db.close();
}
在使用原始查询时,我们永远不会知道操作的结果,但是使用参数化查询函数时,会返回操作成功或失败的值。
Insert:执行插入操作parameterized query
我们必须调用 SQLiteDatabase 类中可用的插入函数。insert()
函数有三个参数,例如public long insert(String tableName,String nullColumnHack,ContentValues values)
where tableName
是要插入数据的表的名称。
这是一个简单的例子:
//Item is a class representing any item with id, name and description.
public void addItem(Item item) {
SQLiteDatabase db = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("name",item.name);
// name - column
contentValues.put("description",item.description);
// description is column in items table, item.description has value for description
db.insert("Items", null, contentValues);//Items is table name
db.close();
}
欲了解更多信息,请参阅此Link http://abhiandroid.com/database/operation-sqlite.html