【发布时间】:2011-02-24 10:33:57
【问题描述】:
我正在尝试使用带有类似代码的 PreparedStatement:
SELECT * FROM ? WHERE name = ?
显然,当我使用 setString() 设置表和名称字段时会发生什么:
SELECT * FROM 'my_table' WHERE name = 'whatever'
并且查询不起作用。有没有办法设置不带引号的字符串,所以该行如下所示:
SELECT * FROM my_table WHERE name = 'whatever'
或者我应该放弃它并改用常规语句(参数来自系统的另一部分,用户都没有输入)?
【问题讨论】:
-
您正在考虑这样做的事实向我表明,您应该考虑重塑您的数据。也许您应该创建一个合并所有表的视图,并添加一个作为“表名”的列。
标签: java sql jdbc prepared-statement