0

我在 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;
}

我想知道有没有办法解决这个问题?

非常感谢

4

0 回答 0