$ # mybatis

在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>

猜你喜欢

转载自blog.csdn.net/kevin_loving/article/details/81118052