Mybatis中
当使用 #{ }传递字符串时:
<select id="retrieveManagerById" resultType="Manager">
SELECT * FROM manager WHERE id=#{id}
</select>
当使用${ }传递字符串时 需要单引号 ' ' 或者 双引号 " " 都可以,把查询的字符串包裹起来
<select id="retrieveManagerByName" resultType="Manager">
SELECT *
FROM manager WHERE name="${name}"
<!-- 或单引
FROM manager WHERE name='${name}'
-->
</select>
${ }是直接拼接sql语句并执行sql,而#{ }是采用占位符的方式执行sql ,可有效防止sql注入的攻击。
1.order by 后面的关键词 必须使用 ${ }
2.传递表名时,也应该使用${ }
3.其他情况,能使用#{ }不使用 ${ }