mysql插入和更新查询中的单引号和双引号(java)

Gop*_*opi 1 java mysql escaping

ComName是'a'b'c'"def"j有限公司.

我尝试在每个'和'之前添加\,但执行的结果查询是

"UPDATE empTable SET empId= '25', ComName = 'a'b'c'"def"j Limited  where ID=1"
Run Code Online (Sandbox Code Playgroud)

我没有看到我的Comname在''和\'之前没有出现'和'

以下是构造列值的代码

columnValue.replaceAll("\'", "\\" + "\'");
columnValue.replaceAll("\"", "\\" + "\"");
columnValue=("'" + columnValue + "'");
Run Code Online (Sandbox Code Playgroud)

如何插入这些类型的字符串?

Bri*_*new 8

查看JDBC库中的PreparedStatements.例如

PreparedStatement pstmt = con.prepareStatement("update Orders set pname = ? where Prod_Id = ?");
pstmt.setInt(2, 100);
pstmt.setString(1, "Bob");
pstmt.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

通过使用setString()等,它将使您不必引用字符串.这是一个如何使用它们的教程.

编辑:正如尼克在下面强调的那样,这不仅可以节省引用问题,还可以节省SQL注入(安全)问题.