【发布时间】:2014-02-05 00:34:16
【问题描述】:
好吧,我的问题很简单:“当我写 ? 代替表名时,它没有采取任何行动” 像这里,假设我有..
String full = "update ? set name = ? where id = ?";
但是当我删除第一个?并输入表名“一切都很完美”......有什么建议吗?
【问题讨论】:
标签: java mysql jdbc prepared-statement
好吧,我的问题很简单:“当我写 ? 代替表名时,它没有采取任何行动” 像这里,假设我有..
String full = "update ? set name = ? where id = ?";
但是当我删除第一个?并输入表名“一切都很完美”......有什么建议吗?
【问题讨论】:
标签: java mysql jdbc prepared-statement
在 JDBC 中,? 占位符代表一个值,它不能代表一个标识符,例如表名。它可以用于可以使用文字值的地方。您会注意到,您也不能在需要列名的地方使用 ?。
【讨论】:
?,它只是被一个带引号的字符串替换;所以对于 MySQL,它只是“意外”不起作用,因为结果查询是 update 'theTableName' set ....,这是一个语法错误。
表名不能使用占位符。
【讨论】: