From the Javadocs:
Derzeit stellt sich diese Methode nur einfache Anführungszeichen in verdoppelt Apostrophe („McHale Marine“ => „McHale" Marine“).
Dies war der Methodencode:
/**
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 }
So könnte man leicht die Methode mit einem einfachen Anruf String#replace
ersetzen.
Es gibt jedoch einen Grund, dass die Methode entfernt wurde. Es war wirklich unausgegoren und ich kann mir keinen guten Grund vorstellen, warum du es benutzen willst. Um beispielsweise JDBC-Abfragen auszuführen, können und sollten Sie Bind-Variablen verwenden, anstatt zu versuchen, String-Literale zu interpolieren und zu escapen.
Beschreiben Sie Ihren Anwendungsfall. Der einfachste wäre "Datenbankabfragen ausführen", und dafür müssen Sie normalerweise keine SQL-Anweisungen entziffern (Sie können und sollten Bindevariablen verwenden). – Thilo
Ergänzung hinzugefügt – Michael
Warum möchten Sie das tun? Es scheint eine schlechte Idee zu sein, also kann ich verstehen, warum die Methode entfernt wurde. – Thilo