无引号的java mysql callableStatement集合字符串

无引号的java mysql callableStatement集合字符串,java,sql,jdbc,connection,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

我需要一些
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
没有引号
请帮忙

这个怎么样:

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

Java将只进行文字替换,因此如果您需要引号,最好将其放入

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


还要注意,
updatetable
不是有效的SQL。

它将生成以下内容:“\'table\u name\'”这些反斜杠没有意义!现在我将学习一些关于
PreparedStatement
的知识。Java不会做任何事情,处理参数占位符的是单个驱动程序实现。大多数驱动程序甚至不会进行替换,只需按原样准备语句并使用变量描述符作为参数。仅允许对值使用占位符,而不允许对对象名称使用占位符。这是不可能的。检查:不同的陈述,相同的问题。