いつでも変更される可能性のあるデータを持つ Web サーバー (Android アプリ用) からの情報を格納する SQLite データベースを作成しています。テーブルを削除してテーブルを再作成するのは効率が悪いようです。
変化を検出する方法はありますか?たとえば、VehicleID は変更されないので、行が変更されたかどうかを確認するにはどうすればよいでしょうか?
私が好きではない私の現在の実装
public int updateAllVehicle(ArrayList<Vehicle> vehicleList) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
// vehicleList populated? Basically to see that I am not going to lose my list of vehicles
if (vehicleList.size() * .75 > getVehicleCount()) {
//delete table
db.delete(TABLE_VEHICLE, null, null);
//remake table
for (Vehicle vehicle : vehicleList) {
values.put(KEY_VEHICLE_ID, vehicle.getvehicleID());
values.put(KEY_TRACK_ID, vehicle.gettrackID());
values.put(KEY_VEHICLE_NAME, vehicle.getvehicleName());
...(20 more attributes here that I omitted for StackOverflow)
}
return vehicleList.size();
}
return 0;
}
更新: テーブル全体に相当する情報を取得していますが、任意の数の行が更新される可能性があります