我想要一些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
没有引号!
请帮忙!
答案 0 :(得分:1)
你根本做不到这一点。参数占位符只能用于值,而不能用于对象名称,如表名。您需要通过将表名连接到update语句来动态构造查询。只要确保防止SQL注入。
另请注意,update table <whatever>
无效SQL。
答案 1 :(得分:-2)
这个怎么样:
cs.setString(1,"'table_name'");
Java只会进行字面替换,所以如果你想要引号,最好把它们放进去!