java中传参中有%导致模糊查询查所有的问题

当前端传过来的参数为 如 name ="%" mysql模糊查询会查所有,怎么解决这个问题呢就是通过转义%让mysql不当成特殊字符%,转义为"%";

/**
     * decode参数
     * @param name
     * @return
     * @throws UnsupportedEncodingException
     */
    private String decodeParamName(String name) throws UnsupportedEncodingException {
        name = URLDecoder.decode(name, "UTF-8");
        if(StringUtils.isNotEmpty(name) && name.contains("%")){
            name = name.replaceAll("%","\\\\%");
        }
        return name ;
    }

sql是这样的

<if test="name!=null and name!=''">
	and sd.name like  concat('%',#{name},'%')
 </if>

这样就可以模糊查询带有%的数据了

上一篇:leetcode91 - Decode Ways - medium


下一篇:redis相关