Error querying database. Cause: java.sql.SQLSyntaxErrorException

 

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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值