编程语言
首页 > 编程语言> > java中传参中有%导致模糊查询查所有的问题

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>

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

标签:UnsupportedEncodingException,java,中传,参中,查询,decode,String,mysql,name
来源: https://blog.csdn.net/li646495946/article/details/113188552