Java 替换插入到MYSQL的单引号

Java 替换插入到MYSQL的单引号,java,mysql,string,jdbc,quotes,Java,Mysql,String,Jdbc,Quotes,我的任务是替换插入MYSQL数据库的单引号,代码如下: String str = "A Linux's distributions"; if (str.contains("'")) { str.replace("'", "''"); } 但是,这种情况不起作用。我确信解决方案非常简单 字符串在java中是不可变的。您需要将其分配给一个变量 String str = "A Linux's distributions"; String

我的任务是替换插入MYSQL数据库的单引号,代码如下:

String str = "A Linux's distributions";

        if (str.contains("'")) {
            str.replace("'", "''");
        }

但是,这种情况不起作用。我确信解决方案非常简单

字符串在java中是不可变的。您需要将其分配给一个变量

 String str = "A Linux's distributions";
 String str_new = "";
 if (str.contains("'")) 
 {
    str_new  = str.replace("'", "''");
 }

为什么不改用PreparedStatement呢?我知道PreparedStatement的可能性并使用它,但我得到一个错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解要使用的正确语法。这可能是因为您使用了
executeUpdate(String)
而不是
executeUpdate()
(无参数)。也许你应该问一个关于这个问题的问题(即使经常有人问,也很难找到)。不要手动转义字符串。@MarkRotterVeel是的,我正在使用构造:PreparedStatement statement=conn.prepareStatement(sql);语句执行更新(sql);我正试着像你说的那样:statement.executeUpdate();但我也犯了同样的错误。您对此有什么想法吗?我建议您在代码中单独发布一个问题,包括Java中定义的查询以及您收到的确切错误消息。