最近在學習mybatis,了解了可以通過if等標簽進行部分欄位更新,
如果某個屬性傳來的是null,就不去更新這個欄位,
那么問題來了,現實中有這種情景嗎?
例如QQ資料,進行編輯的時候,系統會自動把填寫過的各項資訊全都列在輸入框,
用戶不想改動的地方就保持不動,僅僅去修改想要保存的那項資訊.
當點擊保存修改的時候,服務端直接檢驗必填項是否填寫,然后再一個全欄位更新就行了,難道不是這樣嗎?
為什么還要進行判斷某些屬性是否填寫,然后"部分欄位更新"?
難道是,假如說,有個某某商城,在編輯商品資訊的界面,不會幫用戶把填寫過的資訊列舉出來嗎?
表達的可能不太清楚,但真的盡力了...
感謝解答!!
uj5u.com熱心網友回復:
這是對資料庫操作的盡可能小范圍了由于一些存盤因素(如索引等),對于欄位的更新會給資料庫帶來一定的負載:你把一條記錄所有欄位全部 update 一把和只有部分欄位更新的代價是不一樣滴
此外還有服務器間資料通信的負載,如果欄位很多或者要更新的記錄很多的話,效果也是顯而易見滴
uj5u.com熱心網友回復:
盡可能少操作資料庫,單個欄位修改是有的,如果商品庫存數量減少了,只改這個數量就可以了,不用再必一遍名稱、編號什么的。uj5u.com熱心網友回復:
首先你說的if判斷null的情況他其實不一定是為了達到部分更新,他的目的可能是不讓null值寫入資料庫中,而這種需求一般是用于要么強更新要么不更新,而部分更新的情況,只要不是直接更新全表或者15欄位以上,所謂的全欄位更新和部分欄位更新達到減輕資料庫壓力,效果其微,只是因為特殊的情況,需要單獨對這些欄位進行處理而已,現實的中的案例就比如,銀行轉賬,你只能操作你的轉賬金額和要轉給誰,最后更新的也只是你的金額和操作時間以及操作記錄轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/118809.html
標籤:Web 開發
上一篇:求問為什么這段代碼無法拷貝圖片
下一篇:java簡單的型別問題
