【问题标题】:Can we use table objects as positional parameters in jdbc?我们可以在 jdbc 中使用表对象作为位置参数吗?
【发布时间】:2015-03-30 05:33:02
【问题描述】:

主要查询:

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_name、column_name 等?

【问题讨论】:

  • 不,那是不可能的。

标签: jdbc


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    相关资源
    最近更新 更多