mybatis的#{}占位符和${}拼接符的區別


#{}占位符:占位 
如果傳入的是基本類型,那么#{}中的變量名稱可以隨意寫 
如果傳入的參數是pojo類型,那么#{}中的變量名稱必須是pojo中的屬性.屬性.屬性…

${}拼接符:字符串原樣拼接 
如果傳入的是基本類型,那么${}中的變量名必須是value 
如果傳入的參數是pojo類型,那么${}中的變量名稱必須是pojo中的屬性.屬性.屬性… 
注意:使用拼接符有可能造成sql注入

<!-- 
id:sql語句唯一標識 
parameterType:指定傳入參數類型 
resultType:返回結果集類型 
#{}占位符:起到占位作用,如果傳入的是基本類型(string,long,double,int,boolean,float等),那么#{}中的變量名稱可以隨意寫. 
#{}:如果傳入的是pojo類型,那么#{}中的變量名稱必須是pojo中對應的屬性.屬性.屬性..... 
--> 

<select id="findUserById" parameterType="int" resultType="cn.itheima.pojo.User"> 
select * from user where id=#{id} 
</select>
<!-- 
${}拼接符:字符串原樣拼接,如果傳入的參數是基本類型(string,long,double,int,boolean,float等),那么${}中的變量名稱必須是value
${}:如果傳入的參數是pojo類型,那么`${}`中的變量名稱必須是pojo中的屬性.屬性.屬性...
注意:拼接符有sql注入的風險,所以慎重使用
 -->
<select id="findUserByUserName" parameterType="string" resultType="user">
    select * from user where username like '%${value}%'
</select>

 


免責聲明!

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



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