12.1.2. 插入数据
优质
小牛编辑
148浏览
2023-12-01
12.1.2.插入数据
要通过Content Provider插入记录,我们需要覆盖insert()方法。调用者需要提供Content Provider的URI(省略ID)和待插入的值,插入成功可以得到新记录的ID。为此,我们将新记录对应的URI作为返回值。
@Override
public Uri insert(Uri uri, ContentValues values) {
SQLiteDatabase db = statusData.dbHelper.getWritableDatabase(); //#1
try {
long id = db.insertOrThrow(StatusData.TABLE, null, values); //#2
if (id == -1) {
throw new RuntimeException(String.format(
"%s: Failed to insert [%s] to [%s] for unknown reasons.", TAG,
values, uri)); //#3
} else {
return ContentUris.withAppendedId(uri, id); //#4
}
} finally {
db.close(); //#5
}
}
- 打开数据库,写入模式。
- 尝试将数据插入,成功的话将返回新记录的ID。
- 插入过程中若出现失败,则返回-1。我们可以抛出一个运行时异常,因为这是个不该发生的情况。
- 永远不要忘记关闭数据库。finally子句是个合适地方。