这篇文章给大家分享的是有关mybatis中like模糊查询特殊字符报错怎么实现转义处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
<iftest="projectName!=nullandprojectName!=''"><bindname="projectName_"value="'%'+projectName+'%'"/>ANDinfo.namelike#{projectName_}</if>
<iftest="projectName!=nullandprojectName!=''">ANDinfo.namelikeconcat('%',#{projectName_},'%')</if>
使用MyBatis中的模糊查询时,当查询关键字中包括有_、\、%时,查询关键字失效。
当like中包含_时,查询仍为全部,即 like '%_%'查询出来的结果与like '%%'一致,并不能查询出实际字段中包含有_特殊字符的结果条目
like中包括%时,与1中相同
like中包含\时,带入查询时,%%无法查询到包含字段中有\的条目
工具类:特殊字符转义
importorg.apache.commons.lang3.StringUtils;publicclassEscapeUtil{//mysql的模糊查询时特殊字符转义publicstaticStringescapeChar(Stringbefore){if(StringUtils.isNotBlank(before)){before=before.replaceAll("\\\\","\\\\\\\\");before=before.replaceAll("_","\\\\_");before=before.replaceAll("%","\\\\%");}returnbefore;}}
以上方法在关键字中包含有\可能会失效,失效的原因是由于查询的关键字的数据库字段排序规则为utf8_unicode_ci,要想不失效,查询的关键字的排序规则必须为utf8_general_ci,或者统一全部数据库字符集与排序规则分别为:utf8mb4与utf8mb4_general_ci
感谢各位的阅读!关于“mybatis中like模糊查询特殊字符报错怎么实现转义处理”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
MyBatis和jeesite多表查询的方法
MyBatis和jeesite多表查询的方法这篇文章主要介绍了My...
Mybatis怎么实现ResultMap结果集
SpringBoot MyBatis怎么快速入门
怎么用springboot+mybatis plus实现树形结构查询
怎么用springboot+mybatisplus实现树形结构查询...
springboot中怎么实现mybatis多数据源动态切换
springboot中怎么实现mybatis多数据源动态切换这篇“...
基于SpringBoot加载Mybatis的TypeAlias问题怎么解决
基于SpringBoot加载Mybatis的TypeAlias问题怎么解决...
怎么用Springboot+mybatis-plus+注解实现数据权限隔离
怎么用Springboot+mybatis-plus+注解实现数据权限隔离...
Springboot+Mybatis中怎么实现typeAliasesPackage正则扫描
Springboot+Mybatis中怎么实现typeAliasesPackage正则扫描...
springBoot mybatis包扫描问题怎么解决
springBootmybatis包扫描问题怎么解决这篇文章主要...
python中的mysql数据库LIKE操作符怎么用
python中的mysql数据库LIKE操作符怎么用这篇文章主要介...
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议