我是 Android 编程新手,正在尝试了解最佳实践。
我想对两个不同的数据库表进行多次插入,但作为一个事务(因为表共享一个外键)。我希望我的函数返回一个结果,以便我可以显示一个 Toast 或其他内容来说明发生了错误,否则我想返回第一个插入的行 ID。
我相信这样做的一种方法如下(免责声明:伪代码,可能无法编译!):
Long result = -1;
myDatabase.beginTransaction();
try {
// Insert into first table
ContentValue someValues = new ContentValues();
someValues.put("dbfield1", 1);
result = myDatabase.insert(DATABASE_TABLE_1, null, someValues);
if (-1 != result ) {
// Insert into second table
someValues.clear();
someValues.put("dbfield2", 2);
if( myDatabase.insert(DATABASE_TABLE_2, null, someValues) < 0 ) {
result = -1;
}
}
mDatabase.setTransactionSuccessful();
} catch(Exception e) {
// An error occurred
result = -1;
} finally {
mDatabase.endTransaction();
}
有没有更简单/更好的方法来做到这一点?