背景
作为一名后端开发攻城狮,您是否碰到过无法正确模糊查询到含有反斜杠\、百分号%、下划线_等关键字的内容? 比如想模糊查询一下文件信息表中,文件名称包含了下划线的文件信息都有哪些,却返回了表中所有的文件信息或包含了明显不匹配的文件信息。在实际的项目开发中,这种情况很普遍,开发的时候如果没有处理好,到了测试阶段,往往会被测试的同学提BUG单。
在SpringBoot应用中,遇到这种问题,大部分攻城狮们第一时间想到的可能就是写个工具类,然后在接口的代码中,对用户输入的关键字进行特殊符号的转义后,再提交到数据库去查询,这也不失为一种方法。但这种方式需要修改接口的代码,包括测试用例代码,稍显麻烦,那么,有没有更优雅、更省事的实现模糊查询含有特殊符号的内容的方式呢? 答案当然是有的,就是MyBatis提供的扩展接口:TypeHandler类型处理器。