Mybatis中${}和#{}的区别?

Posted master_hxh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis中${}和#{}的区别?相关的知识,希望对你有一定的参考价值。

$  取完值以后直接拼接到sql语句后面去,相当于字符串的拼接,造成sql注入攻击,安全性问题

#  相当于preparedStatement, ????  不会造成sql注入攻击,比较安全

 

List<PersonBean>  getByCondition3(@Param("name") String name, @Param("add") String add);

 <select id="getByCondition" resultMap="stu">

        select *from student where sname=${name}

 </select>

 

sql结果:

select *from student where sname=1 or 1=1

select *from student where sname=‘1 or 1=1‘

以上是关于Mybatis中${}和#{}的区别?的主要内容,如果未能解决你的问题,请参考以下文章

mybatis和hibernate的区别

Mybatis中#{}和${}传参的区别及#和$的区别小结

MyBatis中resultMap=“Map”和resultType=“Map”区别

Mybatis中#{}和${}传参的区别及#和$的区别小结(转)

mybatis和ibatis的区别

Mybatis的mapper文件中#和$的区别 以及 resultType和resultMap的区别