-1
我寫了下面的代碼來更新數據庫中的一些信息使用SQLite。這個想法是在條目已經存在的情況下更新一個值(userAverageTime),或者如果條目尚不存在,則創建一個新記錄。最快的方式來更新Android上的SQLite數據庫(或添加記錄,如果它還不存在)
下面是代碼:
public void updateTableLevelsAverageTime(DatabaseOperations dop, LinkedList<Level> levels) {
SQLiteDatabase SQ = dop.getWritableDatabase();
String selection = KEY_NUMBERS + " = ?";
for (Level level: levels) {
String[] args = {level.toString()};
ContentValues cv = new ContentValues();
cv.put(KEY_AVERAGE_TIME, level.getAverageTime());
int result = SQ.update(TABLE_LEVELS, cv, selection, args);
if (result == 0) {
//If the entry doesn't exist, it must be a new level... thus add it with 0 as userseconds
ContentValues cv2 = new ContentValues();
cv2.put(KEY_NUMBERS, level.toString());
cv2.put(KEY_AVERAGE_TIME, level.getAverageTime());
cv2.put(KEY_USER_TIME, 0);
SQ.insert(TABLE_LEVELS, null, cv2);
Log.d("Database operations", "Row added");
}
else {
Log.d("Database operations", "Row updated");
}
}
SQ.close();
}
(KEY _ ***是在代碼中其他地方定義的列名),
我想知道,這是最好的辦法,但。代碼需要相當一段時間才能運行。
我讀過的地方,如果你想更新數據,你可以批量做這個。但是,如果只想在記錄存在的情況下更新以及在不存在時添加記錄,那麼是否也可以這樣做?