From the Javadocs:
Obecnie metoda ta okazuje wyłącznie do jednorazowego cytaty język podwoiła pojedynczych cudzysłowach ("McHale za Navy" => "McHale 's Navy").
To był kod metoda:
/**
675 * <p>Escapes the characters in a <code>String</code> to be suitable to pass to
676 * an SQL query.</p>
677 *
678 * <p>For example,
679 * <pre>statement.executeQuery("SELECT * FROM MOVIES WHERE TITLE='" +
680 * StringEscapeUtils.escapeSql("McHale's Navy") +
681 * "'");</pre>
682 * </p>
683 *
684 * <p>At present, this method only turns single-quotes into doubled single-quotes
685 * (<code>"McHale's Navy"</code> => <code>"McHale''s Navy"</code>). It does not
686 * handle the cases of percent (%) or underscore (_) for use in LIKE clauses.</p>
687 *
688 * see http://www.jguru.com/faq/view.jsp?EID=8881
689 * @param str the string to escape, may be null
690 * @return a new String, escaped for SQL, <code>null</code> if null string input
691 */
692 public static String escapeSql(String str) {
693 if (str == null) {
694 return null;
695 }
696 return StringUtils.replace(str, "'", "''");
697 }
Więc można łatwo zastąpić metodę z prostego wywołania String#replace
.
Istnieje jednak przyczyna, dla której metoda została usunięta. Było naprawdę niedopieczone i nie mogę wymyślić dobrego powodu, dla którego chciałbyś go użyć. Aby na przykład uruchamiać zapytania JDBC, możesz i powinieneś używać zmiennych wiążących zamiast próbować interpolować i unikać literałów łańcuchowych.
Opisz swój przypadek. Najprostszym z nich byłby "uruchamianie zapytań do bazy danych", a do tego zwykle nie trzeba uciec od żadnego SQL (można i powinieneś używać zmiennych bind). – Thilo
Dodatkowe wyjaśnienie – Michael
Dlaczego chcesz to zrobić? To wygląda na zły pomysł, więc mogę zrozumieć, dlaczego metoda została usunięta. – Thilo