传递参数
Mybatis有两种传递变量的方式,一种是#,一种是$,以#为例。
Java代码
public String getValue(@Param("value")String val)
XML文件
select * from tableName where value = #{value}
模糊查询
相应的模糊查询方式也有两种:
- CONCAT(CONCAT(‘%’, #{value}), ‘%’)
- ‘%’ ${value} ‘%’
原因:
假设#{value}的值是value
- 使用#进行传参,会自动在两端加上“”,如#{value}会变成“value”。
- 而使用${value},则sql语句中还是value。
因此,使用#方式传递参数也可以防止注入。