<!--
#{}:可以获取map中的值或者pojo对象属性的值
${}:可以获取map中的值或者pojo对象属性的值
区别:#:是以预编译的形式,将参数设置到sql中 preparedstatement
$:取出的值直接拼接在sql语句中,会有安全问题
大多数情况,用#
-->
<select id="selectUser" resultType="int">
select id from `tb_Student` where name=#{name} and age=${age}
</select>
#{}是预编译处理,${}是字符串替换。
Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
Mybatis在处理${}时,就是把${}替换成变量的值。
使用#{}可以有效的防止SQL注入,提高系统安全性。