我在postgres数据库中有以下字符串
ABC 123 !#$%*&'-(,)^?<\>~(())%%\\'',,//##$--++**??&&@!!~~\\
我希望用户能够在从屏幕输入时搜索这些特殊字符。但是,该程序不断抛出错误。我使用字符串来创建查询(这是框架性质,所以我不能改变=&gt;不能使用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;
}
我想知道是否有办法解决这个问题?
非常感谢