0
1対多の関係にあるデータを保存しようとしていました。国と同じようにここでAndroidのsqliteと1対多の関係を挿入
public class Country {
private int countryId;
private String countryName;
private List<State> states;
}
上に蓄積され、ここでは、国と州省のコードであるモデルです。
public void saveToDb(List<Country> countries) {
for(Country country: countries){
saveCountry(country);
List<State> states = country.getStates();
for(State state :states)
saveState(state);
}
}
ネストされたループがいかに高価知っネストされたループを使用せずにそのデータを保存する効率的な方法があった場合、私は思っていました。 すべてのヘルプは非常にあなたは、バッチ挿入を行うことができます
ちょうど1つのループを使用して、1つのループで国と州を保存するというアイデアがありました。 –
begintransaction、settransaction、およびend transactionをループ外に置くとパフォーマンスが向上します。私の意見では、ループはデバイス内で高速に実行できるため、各ループで発生するトランザクションがパフォーマンスが遅い理由でした。このstackoverflowの回答を参照することがありますhttp://stackoverflow.com/questions/3501516/android-sqlite-database-slow-insertion – MinFu