iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0

目的

建立FoodLog保存食物單筆資料
建立FoodLogDAO操作資料庫,存/查資料

過程
1.在src下新增model資料夾(用於封裝資料庫欄位成java物件)-》再新增class FoodLog (封裝food_log表裡的記錄)
https://ithelp.ithome.com.tw/upload/images/20251003/20178845ARC65SJkOP.jpg
2.開始寫FoodLog程式
先宣告food_log裡的欄位。
初始化物件,在建立物件時會自動被呼叫(一定要跟類別名一樣,且不會回傳)在這裡不用寫logId因為資料庫會自己生成,不需手動傳。
寫每個欄位的getter、setter,供外部程式讀取或修改
覆寫一個methed toString方便印出物件內容
https://ithelp.ithome.com.tw/upload/images/20251003/20178845fOx8sQLabk.jpg
https://ithelp.ithome.com.tw/upload/images/20251003/20178845VrfC6zNo4q.jpg
3.在src下新增dao資料夾(新增、查詢資料庫)-》再新增class FoodLogDAO(存food_log表的資料)
https://ithelp.ithome.com.tw/upload/images/20251007/201788454Ffi3Js3Zm.jpg
4.開始寫FoodLogDAO程式
addFoodLog(新增食物記錄):丟入前面宣告過的參數 ,丟出例外不在這執行。
sql:先準備在food_log表格插入值,用?代替。
pstmt=conn.prepareStatement(sql):會回傳一個準備好的語句物件。
pstmt.setInt(1,userId):將第一個?設為userId且為整數。
https://ithelp.ithome.com.tw/upload/images/20251007/20178845hEK6WcRSjt.jpg


getUserRecord(查詢使用者食物記錄):丟入userId、date參數,丟出例外不在這執行。
logs:建立一個ArrayList收集查到的物件。
sql:查詢id和date在哪
ResultSet rs =pstmt.executeQuery():將查到的結果存入rs。
rs.next:讀取每一筆資料
get:取得欄位資料
log.add(log),return logs:將建立好的FoodLog加入logs,並回傳。
https://ithelp.ithome.com.tw/upload/images/20251007/20178845H2SsHyjqPY.jpg


deletwFoodLog(刪除記錄):指定刪除log_id,丟出例外不在這執行。
sql:刪除語句
https://ithelp.ithome.com.tw/upload/images/20251008/20178845pW3yksrowC.jpg


updateFoodLog(更新記錄):更新某筆記錄的quantity,丟入新的quantity
swl:更新語句,把某筆記錄的quantity改成新的值,須符合條件log_id=?
https://ithelp.ithome.com.tw/upload/images/20251008/20178845WNdGOu8SNY.jpg


上一篇
連線資料庫
系列文
飲食營養追蹤 + 健康分析 Web 系統4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言