我想使用java向mysql发送一个带有特殊字符的字符串
我正在使用Java1.7来应用如何连接到MySQL数据库。但我在插入带有特殊字符的值(如“,\,\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"");
出现语法错误如何中断应用程序
# 1 楼答案
使用事先准备好的陈述可以解决你的问题。如果设置字符串参数,它将转义所有特殊字符
http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html