java mysql callableStatement setString,没有引号

时间:2013-08-03 09:38:37

标签: java sql jdbc connection

我想要一些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

没有引号!
  请帮忙!

2 个答案:

答案 0 :(得分:1)

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

另请注意,update table <whatever>无效SQL。

答案 1 :(得分:-2)

这个怎么样:

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

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