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语句中

 

 

 

 

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐