这不起作用((说java.sql.SQLSyntaxErrorException:您的SQL语法有误;请查看与您的MySQL服务器版本相对应的手册,以获取在'附近使用正确的语法'tb1'在行中设置'name'='newName'其中'id'= 0000' )>
String queryUpdate = "update ? set ? = ? where ? = ?";
preparedStmtUpdate.setString(1, "tb1");
preparedStmtUpdate.setString(2, "name");
preparedStmtUpdate.setString(3, "newName");
preparedStmtUpdate.setString(4, "id");
preparedStmtUpdate.setInt(5, 0000);
这确实有效 >
String queryUpdate = "update tb1 set named = 'newName' where id = 0000";
然后执行它>
PreparedStatement preparedStmtUpdate = con.prepareStatement(queryUpdate);
preparedStmtUpdate.executeUpdate();
问题:当我尝试打印PreparedStatement对象时,为什么还会添加“值”(引号)?为何仍添加错误消息?
答案 0 :(得分:0)
您不能使用?动态表名称。您需要使用String.format使用字符串连接/占位符构造SQL。准备好的语句用于列值,而不用于表名。