91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis中where-if不能識別大寫AND,OR如何解決

發布時間:2021-02-13 18:12:17 來源:億速云 閱讀:545 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關mybatis中where-if不能識別大寫AND,OR如何解決,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

mybatis報錯:

Caused by: org.apache.ibatis.ognl.ParseException: Encountered " "AND “” at line 1

錯誤代碼:

<select id="selectAccountList" resultMap="BaseResultMap">
  SELECT ct.customer_name customerName,sam.city_code,sam.user_name,sam.account_name
 FROM sys_account_manager sam LEFT JOIN sys_customer ct ON ct.id = sam.customer_id 
  WHERE sam.deleted = 0
  <if test="customerName != null AND customerName != '' ">
  AND ct.customer_name LIKE concat('%',#{customerName},'%')
  </if>
  <if test="cityCode != null AND cityCode != '' ">
  AND LOCATE(#{cityCode},sam.city_code)
  </if>
  order by status,account_validity_time DESC
 </select>

正確代碼:

原因是:

if條件中AND為大寫,大寫不能識別,應改為小寫。

<select id="selectAccountList" resultMap="BaseResultMap">
  SELECT ct.customer_name customerName,sam.city_code,sam.user_name,sam.account_name
 FROM sys_account_manager sam LEFT JOIN sys_customer ct ON ct.id = sam.customer_id 
  WHERE sam.deleted = 0
  <if test="customerName != null and customerName != '' ">
  AND ct.customer_name LIKE concat('%',#{customerName},'%')
  </if>
  <if test="cityCode != null and cityCode != '' ">
  AND LOCATE(#{cityCode},sam.city_code)
  </if>
  order by status,account_validity_time DESC
 </select>

補充:Mybatis中if判斷遇到的坑

最近在項目開發的過程中,遇到了Mybatis的一個坑(也許是Mybatis有意這樣設計的),對于Integer或者Long這種引用數據類型,在做if判斷的時候,如果引用數據類型為0,則mybatis將會視為”“空字符串,所以走不進判斷邏輯里。

以下余額字段為Long類型,availableAmount值為0時,將走不進判斷方法內的示例截圖:

mybatis中where-if不能識別大寫AND,OR如何解決

解決方法:

在test判斷條件中添加”or availableAmount==0“即可,以下是示例截圖:

mybatis中where-if不能識別大寫AND,OR如何解決

或者在業務場景允許的情況下,只判斷availableAmount!=null

<if test="availableAmount!=null">
  ...
</if>

上述就是小編為大家分享的mybatis中where-if不能識別大寫AND,OR如何解決了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海口市| 太和县| 思南县| 广宁县| 峨眉山市| 襄城县| 芜湖县| 香河县| 辛集市| 九龙坡区| 射阳县| 定日县| 满洲里市| 资阳市| 清河县| 隆昌县| 金塔县| 赞皇县| 牙克石市| 诸暨市| 九江市| 湛江市| 洛南县| 亚东县| 安龙县| 武宁县| 满洲里市| 同江市| 巴林右旗| 濉溪县| 怀仁县| 酒泉市| 红原县| 长泰县| 阿图什市| 株洲市| 铁岭市| 荔波县| 昆山市| 荣昌县| 裕民县|