我在 postgres 数据库中有以下字符串
ABC 123 !#$%*&'-(,)^?<\>~(())%%\\'',,//##$--++**??&&@!!~~\\
我希望用户在从屏幕输入时能够搜索这些特殊字符。但是,程序不断抛出错误。我使用字符串来创建查询(这是框架性质,所以我无法更改 => 无法使用 PreparedStatement),所以发生了这个问题。我尝试了下面的方法,似乎这个函数可以解析一些特殊字符,但是当我[@#$%*&'-(,)^?<\>~(())]
从屏幕输入并开始搜索时,它会抛出org.seasar.extension.jdbc.IllegalBindArgSizeRuntimeException
private String replaceSpecialCharacter(String str) {
String strResult = str.replaceAll("\\\\", "\\\\\\\\\\\\\\\\");
strResult = strResult.replaceAll("%", "\\\\\\\\\\\\%");
strResult = strResult.replaceAll("%", "\\\\\\\\\\\\%");
strResult = strResult.replaceAll("_", "\\\\\\\\\\\\_");
strResult = strResult.replaceAll("_", "\\\\\\\\\\\\_");
strResult = strResult.replaceAll("'", "\\\\\\\\\\\\'");
strResult = strResult.replaceAll("\"", "\\\\\\\\\\\\\"");
return strResult;
}
我想知道有没有办法解决这个问题?
非常感谢