1.解决全角转半角问题 StringUtil.ToDBC (已包含去空格)
2.特殊字符转Ascii码
public static String signToAscii(String str) {
str = replaceStringWithString(str, "'", "'||chr(39)||'");
str = replaceStringWithString(str, ",", "'||chr(44)||'");
str = replaceStringWithString(str, "\"", "'||chr(34)||'");
str = replaceStringWithString(str, "+", "'||chr(43)||'");
str = replaceStringWithString(str, ";", "'||chr(59)||'");
str = replaceStringWithString(str, "[", "'||chr(91)||'");
str = replaceStringWithString(str, "]", "'||chr(93)||'");
str = str.replaceAll("\r\n", "
");
");
str = str.replaceAll("\n", "
");
");
return str;
}
3.如果是like语句,处理%等特殊字符
最终sql:
AND upper(fr.file_name) like'%".concat( StringUtil.signToAscii((StringUtil.ToDBC(vo.getFileName()))toUpperCase()).replaceAll("%", "{%").replaceAll("_", "{_")).concat("%' ESCAPE '{' "));