是否可以在Prepared Statements或QueryRunner.update()中提供表名或列名的参数?

时间:2013-06-05 02:08:41

标签: java postgresql servlets jdbc

删除?在哪里? =?

是否可以为所有这些参数提供参数?似乎如果我不提供字符串,我会收到错误。例如,如果我有类似的东西,它似乎只能起作用:

从非营利组织WHERE nonpid =?

删除

只需要这样的参数。

1 个答案:

答案 0 :(得分:3)

答案是否定的,您不能在预准备语句中使用表名。准备好的语句仅适用于列值。

这通常可以通过备用架构来规避,但如果您确实需要,可以通过修改查询字符串始终在查询中构建可选的Table名称。如果这样做,请确保清理输入以防止sql注入。