mybatis中使用mysql的模糊查询字符串拼接(like)

问题:

报错信息包含:Druid sql injection violation, part alway false condition not allow

原有写法:


    and project_name like '%'||#{projectName}||'%'

经过druid编译后,条件变为

AND project_name LIKE '%' OR ? OR '%'

 

解决:

方法一:

and project_name like concat('%',#{projectName},'%')

方法二:


    
    and project_name like #{bindProjectName}

参考:https://www.cnblogs.com/shuaifing/p/7928628.html

另一种方法(如果实在改sql无效果的话)

可以删除wall参数:https://www.cnblogs.com/haha12/p/4670400.html

解决方案:

参数filters: 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:
监控统计用的filter:stat 日志用的filter:log4j 防御sql注入的filter:wall。

把 filters配置中 去掉 wall即可。

你可能感兴趣的:(mybatis,mysql,druid)