mybatis的 choose -- when test -- otherwise 標籤和 if test 標籤的區別
1.choose標籤是按順序判斷其內部when標籤中的test條件出否成立,如果有一個成立,則 choose 結束。
當 choose 中所有 when 的條件都不滿則時,則執行 otherwise 中的sql。類似於Java 的 switch 語句,choose 為 switch,when 為 case,otherwise 則為 default。例如下面例子,同樣把所有可以限制的條件都寫上,方面使用。choose會從上到下選擇一個when標籤的test為true的sql執行。安全考慮,我們使用where將choose包起來,放置關鍵字多於錯誤。
<!-- choose(判斷引數) - 按順序將實體類 User 第一個不為空的屬性作為:where條件 --> <select id="getUserList_choose" resultMap="resultMap_user" parameterType="com.yiibai.pojo.User"> SELECT * FROM User u <where> <choose> <when test="username !=null "> u.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%') </when > <when test="sex != null and sex != '' "> AND u.sex = #{sex, jdbcType=INTEGER} </when > <when test="birthday != null "> AND u.birthday = #{birthday, jdbcType=DATE} </when > <otherwise> </otherwise> </choose> </where> </select>
2.if-test 不會跳出判斷語句
2.1 if-test標籤判斷語法:
@see http://blog.csdn.net/z69183787/article/details/51589171
用==判斷時應寫成
<if test='type=="y"'>
and status = 0
</if>
- 1
- 2
- 3
而不是
<if test="type=='y'">
and status = 0
</if>
- 1
- 2
- 3
mybatis是使用的OGNL表示式來進行解析的,在OGNL的表示式中,’y’會被解析成字元,因為java是強型別的,char 和 一個string 會導致不等。所以if標籤中的sql不會被解析。具體的請參照 OGNL 表示式的語法
轉載自:https://blog.csdn.net/sinat_34814635/article/details/78465631
相關文章
- mybatis中 if 標籤 test 等於判斷MyBatis
- MyBatis中的<where>標籤和where子句的區別MyBatis
- MyBatis系列(七):MyBatis動態Sql之choose,where,set標籤的用法MyBatisSQL
- Mybatis中常用的標籤MyBatis
- MyBatis從入門到精通(七):MyBatis動態Sql之choose,where,set標籤的用法MyBatisSQL
- 請說說 `<pre>` 和 `<code>` 標籤的區別?
- properties標籤和typeAliases標籤
- HTML標籤(基本標籤的使用)HTML
- Mybatis的 foreach 標籤使用方法.MyBatis
- Git tag標籤與branch分支的區別Git
- link標籤連結CSS和@import載入的區別CSSImport
- HTML5標籤HTMLCollection和NodeList的區別詳解HTML
- MyBatis if 標籤的坑,居然被我踩到了。。。MyBatis
- 標籤上title與alt屬性的區別
- 指標和標籤的基礎理解指標
- Git tag標籤與branch分支 區別Git
- CSS和canvas標籤設定畫布尺寸區別CSSCanvas
- Script標籤的async和defer
- 文字框和標籤
- mybatis foreach標籤的解釋 與常用之處MyBatis
- MyBatis標籤實現的動態SQL語句MyBatisSQL
- VOC標籤轉化為YOLO標籤YOLO
- Mybatis的<if>標籤的坑,0會被過濾掉?MyBatis
- PbootCMS可使用的列表標籤內容tags標籤呼叫boot
- 什麼是JSTL標籤?常用的標籤庫有哪些?JS
- HTML 常用的標籤和屬性HTML
- script標籤中的async和defer
- HTML 的常用標籤HTML
- 熟悉的< script >標籤
- html的基本標籤HTML
- marquee 標籤的使用
- html <a>標籤的妙用HTML
- 修改labelme標註的標籤名
- All I know about A/B Test (1) : 均值型指標與比值(率)型指標的計算區別指標
- 如何正確理解「指標」和「標籤」指標
- 可視區、標籤寬高的獲取
- 阻止a標籤的跳轉,a標籤自動跳轉引起的錯誤
- HTML <a> 標籤HTML