首页 > 其他分享 >MyBatis 模糊查询时对特殊字符"%"和"_"的处理

MyBatis 模糊查询时对特殊字符"%"和"_"的处理

时间:2022-10-16 19:45:36浏览次数:72  
标签:name 模糊 查询 MyBatis public 特殊字符 before

MyBatis 模糊查询时对特殊字符"%“和”_"的处理

问题:

输入"%“或”_",查询结果为全部数据,且无法查询到带有"%"或者下划线 的数据。

解决:

对特殊字符转义

例如查询字段为 name

若name中含有"%“或 “_” 转为”/%" “/ _”

public void setName(String name) {
        this.name = StringUtils.isBlank(name) ? null : EscapeUtil.escapeChar(name);
    }
package com.xxx.util;

import org.apache.commons.lang3.StringUtils;

/**
 * @Title:EscapeUtil
 */
public class EscapeUtil {
    /**
     * mysql的模糊查询时特殊字符转义
     */
    public static String escapeChar(String before){
        if(StringUtils.isNotBlank(before)){
            before = before.replaceAll("_", "/_");
            before = before.replaceAll("%", "/%");
        }
        return before.trim() ;
    }
}

mapper中模糊查询语句

name like CONCAT('%',#{name},'%') ESCAPE '/'


标签:name,模糊,查询,MyBatis,public,特殊字符,before
From: https://www.cnblogs.com/big-keyboard/p/16796884.html

相关文章

  • linux 下HBA相关查询
     1、查看当前卡的品牌,常用的卡有两种,Emulex和Qlogic。---------------------------------------------lspci|grep-ifibre2、查看HBA卡的驱动版本emulex:modinfolp......
  • MybatisPlus生成主键策略方法
    MybatisPlus生成主键策略方法全局id生成策略【因为是全局id所以不推荐】SpringBoot集成Mybatis-Plus在yaml配置文件中添加MP配置mybatis-plus:global-config:d......
  • dql 分组查询和条件查询
    分组查询 公式:select字段列表from表名【where分组前的条件】groupby分组字段名 【having 分组之后的查询条件】注意:分组之后查询字段只能写分组字段名......
  • 3.MongoDB系列之查询
    1.find简介//查询所有文档db.users.find({})//查询指定条件文档db.users.find({'name':'shenjian'})//查询指定字段,1查询键0剔除键db.users.find({'name':'sh......
  • SpringBoot整合ES查询
    springboot整个es有很多钟方法,比如TransportClient、RestClient、RestHighLevelClient、SpringData-Es、Elasticsearch-SQL等。ElasticSearch官方提供了3个Client,具体......
  • ES大数据量的分页查询
    FROM/SIZE分页查询默认情况下,不加from,size的话,ES会返回前10条记录。加上from,size就会查询指定的条数。其中from代表起始行号,size代表查询行数。如果用JAVA等Client端传参......
  • ES的过滤查询
    ES的查询类型和特性查询(query):默认会计算每个返回文档的得分,然后根据得分排序过滤(filter):筛查出符合条件的文档,并且不计算得分,还可以缓存文档注意:filter过滤查询必须要......
  • Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
    参考书籍《mysql是怎样运行的》非常推荐这本书,通俗易懂,但是没有讲mysql主从等内容书中还讲解了本文没有提到的子查询优化内容,本文只总结了常见的子查询是如何优化的系......
  • ES聚合查询
    Elasticsearch的聚合查询分为四大类,分别是BucketAggregation、MetricAggregation、PipelineAggregation、MatrixAggregration。具体的四大类都是什么意思呢?都是怎么运......
  • mybatis的逆向工程
    Mybatis逆向工程实现步骤:mybatis逆向工程:1)简介:根据表生成mapper层三部分代码:实体类,mapper接口,映射文件。2)使用mybatis逆向工程:a)创建工程:crm-mybatis-generatorb)......