mybatis中替换like

发布时间:2026/5/28 1:37:12

mybatis中替换like 前言在mybatis中有一个痛点就是like的拼接问题虽然可以用CONCAT函数拼接但该方案无法解决查询中携带%,_这两个特殊字符时无法正常进行查询如果使用其他函数例如Mysql中的instr写出来的语句不具备通用性仅能在mysql中使用解决思路在接收前端参数时对需要进行like查询的字段进行转换覆写其set方法即可代码字符串拼接publicclassStringUtils{/** * 处理like查询的字符串 * param str * return */publicstaticStringhandleLikeStr(Stringstr){return%handleRightLikeStr(str);}publicstaticStringhandleRightLikeStr(Stringstr){strstr.replaceAll([%_],\\\\$0);returnstr%;}publicstaticvoidmain(String[]args){System.out.println(handleLikeStr(123%3_45));}}DTO 或Form 对象set方法importlombok.Data;importlombok.EqualsAndHashCode;DataEqualsAndHashCode(callSuperfalse)publicclassSysUserSearchForm{privateStringaccount;privateStringrealName;privateStringphone;privateStringemail;privateIntegergender;privateIntegerstatus;privateIntegersource;publicvoidsetAccount(Stringaccount){this.accountStringUtils.handleLikeStr(account);}publicvoidsetRealName(StringrealName){this.realNameStringUtils.handleLikeStr(realName);}publicvoidsetPhone(Stringphone){this.phoneStringUtils.handleRightLikeStr(phone);}publicvoidsetEmail(Stringemail){this.emailStringUtils.handleRightLikeStr(email);}}若有更好方案可以留言沟通

相关新闻