1.#{} 是预编译处理,相当于?,表示 sql 模板的占位符,并且会调用 PreparedStatement 的 set 方法来赋值;${} 是字符串替换,表示将字符串拼接到 sql 模板中;如下:
<select id="findByLike" parameterType="string" resultType="com.itbaizhan.pojo.User"> select * from user where username like '%${value}%' </select>
2..#可以防止 sql 注入,提高系统的安全性,一般能用#就不用 $。
3.${} 内部的参数名必须写 value。