我正在构建一个插入命令以使用 jdbc 执行。其中一部分是连接用户生成的字符串......这一切都有效,直到用户使用这样的字符串:
a'bcd
String userString="a'bcd";
String insertTableSQL = "INSERT INTO myTable "
+ "(insertColumn) "
+ "VALUES("
+"'"+userString+"'"
+")";
statement.executeUpdate(insertTableSQL);
最佳答案
您可以执行以下任一操作:
使用 PreparedStatement 类。 (推荐)
String userString="a'bcd"; String myStatement = " INSERT INTO MYTABLE (INSERTCOLUMN) VALUES (?)"; PreparedStatement statement= con.prepareStatement (myStatement ); statement.setString(1,userString); statement.executeUpdate();
转义单引号。
在 SQL 中,单引号将通过使用双单引号进行转义。
'
-->''
String userString="a'bcd"; String changedUserString = userString.replace("'","''"); //changedUserString = a''bcd String insertTableSQL = "INSERT INTO myTable (insertColumn) VALUES(" +" '"+changedUserString +"' )";
关于java - 如何为 SQL 插入转义单引号...当要插入的字符串在用户生成的变量中时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331524/