在mybatis接口mapper文件中引用传入的参数是通过#{param}或者${param}来使用的。
1.数据类型匹配
#:会进行预编译,而且进行类型匹配
$:不进行数据类型匹配
2.实现方式
#:用于变量替换
$:实质上是字符串拼接
3.#和$的使用场景
(1)变量的传递,必须使用#,使用#{}就等于使用了PrepareStatement这种占位符的形式,提高效率。可以防止sql注入等等问题。#方式一般用于传入添加,修改的值或查询,删除的where条件 id值
select * from t_user where name = #{param}
(2)字段名可以使用,使用$ ,如下列情况,提高速度,要小心sql注入的问题
<if test="scheme!=null and scheme!=''"> "${scheme}".t_clogistics_device </if>