Mybatis中 if test字元串比較,$和 佔位符區別
今天在做項目時總是報一個錯NumberFormatException,我上網搜索了是格式轉化錯誤,後來仔細一看原來是我的mybatis中字元串的比較寫的有問題,沒有進行轉化,廢話不多說直接上代碼:
錯誤的寫法:
<when test="fenlei == '在建工程' ">
AND f.fenlei in ('工業類','商業類','住宅類','辦公類')
</when>
正確的寫法:
<when test="fenlei == '在建工程'.toString()">
AND f.fenlei in ('工業類','商業類','住宅類','辦公類')
</when>
Advertisements
注意:字元串在進行比較時需要進行toString轉化一下,不然會報錯
還和大家分享一下在mybatis中#和$佔位符的區別:
1:$value$:沒有進行預編譯,直接替換參數value;容易發生sql注入
2:#value#:會進行預編譯成?佔位符,不會發生SQL注入