0

我想要一些CallableStatement类方法来生成不带引号的命名参数查询。

String query = "update table ? ";
CallableSatement cs = connection.prepareCall(query);
cs.setString(1,"table_name");
cs.updateQuery();

生成的查询是这样的:

 update table 'table_name'

虽然我想要这个:

update table table_name

没有引号!
请帮忙!

4

2 回答 2

1

你根本无法做到这一点。参数占位符只能用于值,不能用于对象名称,如表名。您需要通过将表名连接到更新语句来动态构造查询。只要确保防范 SQL 注入即可。

另请注意,这update table <whatever>不是有效的 SQL。

于 2013-08-03T10:27:29.827 回答
-2

这个怎么样:

cs.setString(1,"'table_name'");

Java 只会做一个文字替换,所以如果你想要引号,你最好把它们放进去!

于 2013-08-03T09:40:03.703 回答