我正在制作一个 SQLite 数据库,该数据库将存储来自网络服务器(用于 Android 应用程序)的信息,该数据库的数据可能随时更改。删除表格并重新制作表格对我来说似乎效率低下。
有没有办法检测变化?例如,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;
}
更新:我正在获取完整表的信息,但有可能更新了任意数量的行