首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MyBatis 動態 SQL 中 if 判斷寫法錯誤導致更新無效

     編輯:程式設計疑難解答

錯誤現象

更新語句不報錯但數據不變,日誌顯示 SQL 中出現 title = null。

錯誤寫法

<if test="title != null">  -- 錯誤:MyBatis OGNL 表達式不需 #{}
    title = #{title}
</if>

正確寫法

<if test="title != null">  -- 直接用屬性名
    title = #{title}
</if>

原理

test 屬性裡是 OGNL 表達式,直接引用參數對象屬性;#{} 只用於 SQL 參數佔位符,不能用在 test 中。

調試技巧

開啟 MyBatis 日誌 log4j.logger.org.apache.ibatis=DEBUG,觀察生成的完整 SQL 及參數值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved