是否有可能访问带有问号的sql表?
我有 3 个 sql 表客户、员工和经理。我想动态访问我的表。我有这样的声明,
"update customer set AMOUNT where ID= ?"
但在这种情况下,我只能访问客户。我需要访问所有表以进行不同的操作。可以这样写吗
"update ? set AMOUNT where ID=?"
或者我可以做什么来访问例如不同班级的员工。
回答
参数只能在您可以使用文字值的地方使用,如带引号的字符串或数值。
参数不能用于表名等标识符。也没有表情。也不是 SQL 关键字。
在准备查询之前,必须在 SQL 查询字符串中修复查询的所有其他部分。
要查询其他表,您只需将表名连接到字符串中。
String query = "update " + tableName + " set amount where ID=?";
由您来确保您的变量tableName
实际上只包含您的表名之一。这样做的一个好方法是将它与已知表名的列表进行比较,如果它不在列表中,则抛出异常。