溫馨提示×

溫馨提示×

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

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

mybatis中怎么判斷<if>標簽bool值類型為false

發布時間:2021-02-08 12:11:47 來源:億速云 閱讀:802 作者:小新 欄目:編程語言

這篇文章主要介紹了mybatis中怎么判斷<if>標簽bool值類型為false,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

昨天實現一個功能,根據文章的id或者別名查找文章。

起初采用mybatis的Example進行查詢,對參數artName進行判斷,如果是純數字就byId查詢,否則就by別名。由于查詢文章的同時,需要關聯查詢文章分類標簽,所以選擇采用select語句映射的方式查詢,但又不想寫兩個查詢方法,就使用了mybatis中動態sql。

/**
 * 查詢文章
 * @param artName id 或 別名
 * @param byId 如果是 true 則按照id查詢
 *    否則 按照別名查詢
 * @return
 */
public Article selectByArtName(@Param(value = "artName") String artName,
       @Param(value = "byId") Boolean byId);

mapper中定義了一個方法,有artName和byId兩個參數,artName 表示id 或 別名,byId表示是否通過id查詢。
對byId Boolean值進行判斷時,出現false值無效的情況,在百度了一圈發現,普遍采用

<if test="byId != null">
  a.id = #{artName}
</if>

這種方式,當byId=true時正常執行,但為false時不生效。后采用<choose>標簽

<choose>
  <when test="byId">
    a.id = #{artName}
  </when>
  <otherwise>
    a.alias = #{artName}
  </otherwise>
</choose>

byId本身是bool值,不用進行判斷。

注意: byId不用加#{},不然false也會無效,如果加了#{}, 在與其他值進行比較時,
如: #{byId} == true 會報空指針錯誤,如果寫成#{byId} == 'true'   會報Linkhashmap無法轉換成String類型錯誤。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“mybatis中怎么判斷<if>標簽bool值類型為false”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女