我们可以使用 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 中删除,基于哪个标准,它就无法准备执行计划。
主查询:
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 中删除,基于哪个标准,它就无法准备执行计划。