0

我正在使用 Java 1.7 来制作如何连接到 MySQL DB 的应用程序。但是我在插入带有特殊字符(如“,\,\n”)的值时遇到了很多问题。我正在尝试手动更改这些值。我使用此方法进行更改。

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 回答