admin

有可能访问带有问号的sql表吗?

sql

我有3个sql表客户,员工和经理。我想动态访问我的表。我说过这样的话

"update customer set AMOUNT where ID= ?"

但是,在这种情况下,我只能访问客户。我需要访问所有表以进行不同的操作。写这个有可能吗,

"update ? set AMOUNT where ID=?"

或者我可以做什么来访问例如不同班级的员工。


阅读 148

收藏
2021-07-01

共1个答案

admin

参数只能在否则可以使用文字值(例如带引号的字符串或数字值)的地方使用。

参数不能用于表名之类的标识符。也不表达。也没有SQL关键字。

在准备查询之前,必须在SQL查询字符串中固定查询的所有其他这些部分。

要查询其他表,只需将表名称连接到字符串中即可。

String query = "update " + tableName + " set amount where ID=?";

确保您的变量tableName实际上仅包含表名之一,这取决于您。做到这一点的一个好方法是将其与已知表名的列表进行比较,如果不在列表中,则抛出异常。

2021-07-01