0

私はJava1.7を使用して、MySQL DBにどのように接続するかを適用しています。しかし、「、\、\n」などの特殊文字を含む値のque挿入には多くの問題があります。この値を手動で変更しようとしています。Imこの方法を使用して変更を加えます。

public static String StringToSQL(String chain) {
    chain.replaceAll(Matcher.quoteReplacement("\\"),
            Matcher.quoteReplacement("\\\\"));
    chain.replaceAll(Matcher.quoteReplacement("\""),
            Matcher.quoteReplacement("\\\""));
    chain.replaceAll(Matcher.quoteReplacement("\n"),
            Matcher.quoteReplacement("\\n"));
    chain.replaceAll(Matcher.quoteReplacement("'"),
            Matcher.quoteReplacement("\\'"));
    return chain;
}

チェーンを次のように変形させたい

The cat says "meaw meaw"

の中へ

the cat says \"meaw meaw\"

MySql構文に問題がないこと

たとえば、SQLは

INSERT INTO AnimalSays (Phrase) VALUES ("\"Meaw Meaw\"");

しかし、私は送ります

INSERT INTO AnimalSays (Phrase) VALUES (""Meaw Meaw"");

構文エラーがあると、アプリケーションがどのように壊れますか

4

1 に答える 1

1

プリペアドステートメントを使用すると、問題が解決します。文字列パラメータを設定すると、すべての特殊文字がエスケープされます。

http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html

于 2013-01-11T08:50:27.537 に答える