mybatis中 ${}和#取值小記(Parameter index out of range)


mybatis mapperxml文件中有兩種取值法.${}和#{}   

$的是原樣,#的是取值並轉成指定?#{ele1,jdbcType=VARCHAR}  

有個坑,

錯誤的寫法

<if test="searchName!=null">
<if test="searchName!=''">
and p.name like CONCAT('%','#{searchName,jdbcType=VARCHAR}','%' )
</if>
</if>

正確的寫法1

<if test="searchName!=null">
<if test="searchName!=''">
and p.name like CONCAT('%','${searchName}','%' )
</if>
</if>

 

正確的寫法2

<if test="searchName!=null">
<if test="searchName!=''">
and p.name like CONCAT('%',#{searchName,jdbcType=VARCHAR},'%' )
</if>
</if>

 #取值時會把值轉成'值',這時如果外面又加‘’  也就是 '#{ele,jdbcType=VARCHAR}'    就會變成 ''ele''  2個引號    '${ele}' 是原樣 不會自己加引號 所以外面包引號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM