mybatis中if標籤判斷字串相等
今日按需求在mapper.xml中修改完一條sql的條件,感覺很輕鬆,如下所示:
<if test="companyId != null and companyId !='' ">
<if test="companyFlag == '1'">
AND COMPANY_ID = #{companyId,jdbcType=VARCHAR}
</if>
<if test="companyFlag == '0'">
AND COMPANY_ID != #{companyId,jdbcType=VARCHAR}
</if>
</if>
結果sql執行的結果卻讓我輕鬆不起來,明明companyId和companyFlag這兩個欄位不為空,但是在列印的日誌sql中卻沒有這個條件,將上述sql改為如下所示:
<if test="companyId != null and companyId !='' ">
and 1 = 1
<if test="companyFlag == '1'">
AND COMPANY_ID = #{companyId,jdbcType=VARCHAR}
</if>
<if test="companyFlag == '0'">
AND COMPANY_ID != #{companyId,jdbcType=VARCHAR}
</if>
</if>
執行sql後發現日誌將and 1 = 1 打印出來了,還是沒有COMPANY_ID這個條件,於是意識到是companyFlag的判斷條件出了問題,在網上一頓搜尋後,發現了說明:
mybatis 對映檔案中,if標籤判斷字串相等,兩種方式:因為mybatis對映檔案,是使用的ognl表示式,所以在判斷字串sex變數是否是字串Y的時候使用
<test="sex=='Y'.toString()">或者<test = 'sex== "Y"'>
將自己的sql改為:
再次呼叫sql,則條件正常可用了。<if test="companyId != null and companyId !='' "> <if test="companyFlag == '1'.toString() "> AND COMPANY_ID = #{companyId,jdbcType=VARCHAR} </if> <if test="companyFlag == '0'.toString() "> AND COMPANY_ID != #{companyId,jdbcType=VARCHAR} </if> </if>
相關推薦
mybatis中if標籤判斷字串相等問題
mybatis 對映檔案中,if標籤判斷字串sfyx變數是否是字串Y的時候,發現並不管用: <if test="sfyx=='Y' "> and 1=1 </if> 當時就尋思著可能是字元和字串的問題,改成雙引號試
mybatis中if標籤判斷字串相等
今日按需求在mapper.xml中修改完一條sql的條件,感覺很輕鬆,如下所示:<if test="companyId != null and companyId !='' "> <if test="companyFlag == '1'"> A
Mybatis中 if標籤判斷字串
在做開發的時候遇到這樣一個問題:當傳入的type的值為y的時候,if判斷內的sql也不會執行。 <if test="type=='y'"> and status = 0 </if> 仔細想想:my
mybatis 對映檔案中,if標籤判斷字串相等
mybatis 對映檔案中,if標籤判斷字串相等,兩種方式: 因為mybatis對映檔案,是使用的ognl表示式,所以在判斷字串sex變數是否是字串Y的時候, <if test="sex=='Y'.toString()"> <if test = 'sex== "Y"'&g
Mybatis中if標籤中的整型判斷問題
用mybatis進行資料修改的時候,age屬性沒有賦值,但是我使用update的時候age這個屬性也被修改了。age屬性是一個int型別。 <set> &
MYBATIS中if test判斷中的注意事項
mybatis中有這樣一個SQL判斷, <if test="status != null and status !='' "> and a.STATUS = #{status,jdbcType=SMALLINT} </if> status是一個Byte型
mybatis 在if 裡判斷字串
這樣會有問題 <if test=" name=='你好' "> </if> 換成 <if test=' name=="你好" '> </if>
在JSP頁面中使用標籤判斷字串長度的問題
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
mybatis 中 if判斷字串相等
<if test=" ids == 1 "> or <if test=" ids == '1'"> 都不行 最後百度到 如下寫法 <if test=" ids == '1'.toString() "> 成功
mybatis中if標簽判斷字符串相等問題
batis 強類型語言 問題 是否 解析 myba col 1=1 nbsp mybatis 映射文件中,if標簽判斷字符串sfyx變量是否是字符串Y的時候,發現並不管用: <if test="sfyx==‘Y‘ "> and 1=1 </
strus2 <s:if>標籤 判斷字串
//可以直接判斷後臺傳來的引數 <s:if test="can1 !=null && can1 != '' "> //可以判斷後臺傳來的引數是否包含某些字元 等 <s:if test="can1.contains('#')">
js中判斷字串相等使用==
在 javaScript或者jQuery中字串比較沒有equals()方法,要比較兩個字串是否相等可以直接用==或者is()進行判斷。 一段老的js程式碼示例: var items = document
myBatis中if test 字串注意事項
錯誤寫法: <if test="userName == 'boshen'"> AND `USER_NAME` = #{userName} </if> 正確寫法:
FreeMarker中if標籤內的判斷條件
FreeMarker中的<#if>標籤除了裡面直接判斷 boolean 型別的變數外,也可以進行表示式判斷,有幾個細節記錄一下 1. 判斷物件是否存在(null) 經常會用到,如果物件 != null 則xxxx,在freemarker中表達比較奇怪,例
mybatis if 標籤 判斷單個字元的不生效,其實這是個坑
需求: <if test="carrier != null and carrier !='' and carrier !='0'"> AND CARRIER = #{carrier} </if>要在carrier欄位不為null,'',和"0
mybatis中if判斷無效的問題
常規寫法: <if test="type=='y'"> and status = 0 </if> mybatis是使用的OGNL表示式來進行解析的,在OGNL的表示式中,’y’會被解析成字元,因為java是強型別
Mybatis if標籤判斷數字大小
1、if標籤語法 <select...> SQL語句1 <if test="條件表示式"> SQL語句2 </if> </select> 注意:條件表示式中大於號小於號用 gt,lt <if test=
mybatis中if判斷把整數0識別為false(深坑)
1先看mybatis配置檔案<select id="listByParam" resultMap="orderSettlePartnerResultMap" parameterType="com.jd.ept.settlement.domain.settle.Ord
mybatis中if判斷
<if test="type >= 0"> type = #{type} </if> 如果這麼寫 不管type是否傳進來值 type都有預設值 0 正確的寫法應該是 <if test="type != null">
struts2 判斷字串相等和其他struts2標籤
在做專案時,需要判斷用struts2標籤來判斷兩個字串是否相等,在查閱了相關資料後,找到了如下方法 正確的寫法如下: <s:if test='#user.userSex == "M"'>男 </s:if> <s:if test='%{#user.userSex == "M