2012-04-24 8 views
8

私はAndroid上でORMLiteを使用しており、複数のエントリを作成/更新する必要がある7つのテーブルがあります。ORMLite - CallBatchTasks()を個別に実行するか、すべての更新を1回実行しますか?

私のDAOのそれぞれで個別にcallBatchTasks()メソッドを使用していますが、すべてのアップデートを処理するのにDAOのcallBatchTasks()を使用することは可能か有益かどうか疑問に思っていましたか?

これは処理を高速化しますか?

答えて

8

興味深い質問です。 Androidの下でORMLiteを使用すると、すべてのDAOが同じデータベースへの同じ接続を使用しています。だから少し壮観ですが、確かに単一のfooDao.callBatchTasks()コールを使用して、FooBar、およびBazテーブルを更新することができます。これは接続の自動コミットを無効にし、今までテーブルに作成/更新したい呼び出しを適用し、最後にすべての変更をコミットします。

+1

ありがとうございます!少しのテストではこれを行うことでパフォーマンスに違いはないことがわかったので、私は見た目には見えないコードに固執します! :) –

+1

@Gray:この情報をドキュメントに追加すると便利です。彼らは今、別々にバッチ処理されていました。そしてbtw:私たちにorkiteを与えてくれてありがとう;-) –

+0

複数のdaosの行を1つの 'callBatchTasks'実装で更新すると、SQLExceptionが発生します:ヘルパーから書込み可能なデータベースを取得できませんでした –

関連する問題