Zzzxb's Blog

你要静心学习那份等待时机的成熟的情绪,也要你一定保有这份等待之外的努力和坚持。

like模板查询问题

使用 Mybatis 的时候通过 Mybatis Generator 生成了Mapper, 通过 like 查询的时候发现在与用户交互中,用户输入 % 能查询到全部信息, 所以需要一种方法来过滤掉用户输入的通配符.

public class LikeEscape {
    public static String filterAddPrefix(String prefixWildcard, String content) {
        String filterContent = filter(content);
        if (StringUtils.isBlank(filterContent)) {
            return content;
        }
        return prefixWildcard + content;
    }

    public static String filterAddSuffix(String content, String suffixWildcard) {
        String filterContent = filter(content);
        if (StringUtils.isBlank(filterContent)) {
            return content;
        }
        return filterContent + suffixWildcard;
    }

    public static String filter(String content) {
        if (StringUtils.isBlank(content)) {
            return content;
        }
        content = content.replace("/", "//");
        content = content.replace("'", "''");
        content = content.replace("[", "/[");
        content = content.replace("]", "/]");
        content = content.replace("%", "/%");
        content = content.replace("&", "/&");
        content = content.replace("_", "/_");
        content = content.replace("(", "/(");
        content = content.replace(")", "/)");
        return content;
    }
}

来自: https://www.cnblogs.com/mingfeng002/p/10078876.html