我正在为自己创建查询构造函数,以使将来的编码变得更容易,现在我的方法中有以下代码:
public static String constructQueryValueRemove(String table, Pair pairIndex, String column){
String query;
if (pairIndex.getRight() instanceof Number){
query = "UPDATE `"+table+
"` SET `"+column+"` = NULL" +
"WHERE `"+table+"`.`"+pairIndex.getLeft()+"` = "+pairIndex.getRight();
} else {
query = "UPDATE `"+table+
"` SET `"+column+"` = NULL" +
"WHERE `"+table+"`.`"+pairIndex.getLeft()+"` = '"+pairIndex.getRight().toString()+"'";
}
return query;
}
如果pairIndex.getRight()将是字符串,并且值中没有'符号,以下查询是否可以正常工作?
query = "UPDATE `"+table+"`"+
"SET `"+column+"` = NULL" +
"WHERE `"+table+"`.`"+pairIndex.getLeft()+"` = "+pairIndex.getRight();
答案 0 :(得分:0)
不幸的是,这不是有效的SQL命令,因为该字符串未加引号。创建一个准备好的语句,然后绑定动态值(例如给定的字符串)会更简单。准备好的语句将在内部处理正确的引用。
有关详情,请参见此处:https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html