mybatis模糊查询时,不想在调用方法时参数加%,所以我使用拼接参数的方 式设置Sql:
问题在于UserMapper.xml配置sql模糊查询语句出了问题。
倒数第二行是在测试类的时候模糊传入,没有问题
倒数第一行有问题,正确配置如下
select * from user where username like '%${value}%'
1 #表示sql模板的占位符,$表示将字符串拼接到sql模板中。
2 #可以防止sql注入,一般能用#就不用$。
3 ${}内部的参数名必须写value。
#是传递预编译的sql语句;$是普通传递sql语句(有sql注入的风险)
更加完美的解决方案 (既想防止sql注入,不想在测试类中写%匹配符)
<bind> 允许我们在 Sql语句以外创建一个变量,并可以将其绑定到当 前的Sql语句中