目的
使用Console輸入輸出,確認能否正常查詢、新增資料。
將Main改成Console互動版。
1.Main
Scanner sc = new Scanner(System.in):建立一個新的Scanner物件,從鍵盤(System.in)讀取資料。
while break用法:只要條件成立就一直執行,遇到break停止。
印出選項。
int choice =sc.nextInt():從鍵盤讀取一個整數,存在變數choice。
sc.nextLine():吸收上一步輸入後的換行符號\n,避免後續讀字串出現空值。
switch(choice):根據choice值執行不同程式碼區塊:
case 1 :如果使用者輸入1,就執行這裡的程式碼。
sc.nextLine:這放在份量和日期中間是因為,在數字輸入後,通常要吸收換行、讀整行文字,避免讀字串出錯。
dao.addFoodLog(userId,foodId,date,quantity):呼叫FoodLog的addFodLog方法,把剛剛輸入的資料存進資料庫
case 2(查詢):
跟1差不多,但這只需要userId跟date就可以查。
在日期前需加上sc.nextLine,避免出錯。
List< FoodLog > records = dao.getUserRecord(userId,date):呼叫FoodLog的getUserRecord方法查詢記錄,結果存到records。
records.isEmpt():檢查查詢結果是否為空,不是空的就用for讀取records的資料然後存入log,最後印出。
case 3(更新):
double newQty = sc.nextDouble():從鍵盤讀取一個double,存在變數newQty。
dao.updateFoodLog(userId,foodId,date,newQty):呼叫updateFoodLig方法,更新資料。
case 4(刪除)
dao.deleteFoodLig(userId,foodId,date):呼叫deleteFoodLog方法,刪除資料。
case 0(離開):
return:跳出main,程式結束執行。
default:switch-case裡的預設情況,如果使用者輸入選項不是任一case,則會顯示這裡。
catch:捕捉資料庫操作的例外。
2.執行結果