我们可以使用 table 对象作为 jdbc 中的位置参数吗?

Can we use table objects as positional parameters in jdbc?

主查询:

PreparedStatement pstmt = con.prepareStatement("DELETE FROM employee WHERE eno = 1");

工作:通过连接

PreparedStatement pstmt = con.prepareStatement("DELETE FROM "+tn+" WHERE "+cn+" = ?");

不工作:使用位置参数时

PreparedStatement pstmt = con.prepareStatement("DELETE FROM ? WHERE ? = ?");

我们能否仅将位置参数用于处理 table 数据?

为什么我无法使用 table_name、column_name 等?

准备好的语句的要点是让数据库准备一个执行计划(即计算需要做什么,使用哪些tables、索引、连接策略、算法等),以及然后使用各种参数执行该计划一次或多次。

如果数据库甚至不知道它必须从哪个 table 中删除,基于哪个标准,它就无法准备执行计划。