2017-08-12 79 views
0

將數據插入我的數據庫時,我使用-1。我是否應該不使用0來指示是否插入了NOTHING,然後返回false。只是想知道這是正確的方式?將數據插入數據庫 - 爲什麼我使用-1而不是0?

非常感謝,

馬克

Routine.java

if (routineInserted) {               

Toast.makeText(RoutineEdit.this, "Activity Inserted", Toast.LENGTH_LONG).show(); 

MediaPlayer mymedia = MediaPlayer.create(RoutineEdit.this, R.raw.whoosh); 
mymedia.start(); 

} else { 

Database.java

public boolean insertRoutine(int activityImage, String selectedDay, int activitySlot) { 

    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(RoutineColumn1,selectedDay);             
    contentValues.put(RoutineColumn2,activityImage);             
    contentValues.put(RoutineColumn3,activitySlot);             
    long result = db.insert(RoutineTable, null, contentValues);          // The db.insert is responsible for insertion of the data into the database and stores the result of this action (either true or false) in result. 

    if(result == -1)                    // if the result is not equal to -1 or data is not successfully inserted it will return FALSE. otherwise TRUE 
     return false; 
    else 
     return true;} 

回答

1

按照doc

返回渴望新插入的行的行號,或-1,如果出現錯誤 發生

所以,你應該使用-1。

那麼,爲了進一步闡述此API的開發人員,選擇-1作爲任何發生SQLException的返回值。

欲瞭解更多信息,請查看source code

還有一件事,你可以使用,而不是兩個一個return語句。

public boolean insertRoutine(int activityImage, String selectedDay, int activitySlot) { 

     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 
     contentValues.put(RoutineColumn1,selectedDay);             
     contentValues.put(RoutineColumn2,activityImage);             
     contentValues.put(RoutineColumn3,activitySlot);             
     long result = db.insert(RoutineTable, null, contentValues);          // The db.insert is responsible for insertion of the data into the database and stores the result of this action (either true or false) in result. 

     return (result != -1) 
} 
+0

雖然是什麼意思?只要閱讀文檔並理解我應該使用-1但理解爲什麼? – MarkW

相關問題