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