私はAndroidプログラミングに不慣れで、ベストプラクティスを理解しようとしています。
2つの異なるデータベーステーブルに複数の挿入を実行したいのですが、1つのトランザクションとして(テーブルが外部キーを共有しているため)。関数が結果を返し、トーストなどでエラーが発生したことを示すことができるようにしたい。そうでない場合は、最初の挿入の行IDを返したい。
これを行う1つの方法は、次のようなものだと思います(免責事項:疑似的なコード、おそらくコンパイルされません!):
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();
}
これを行うためのより簡単でより良い方法はありますか?