1

是否可以为该FROM子句使用准备好的语句?

我正在尝试这样做:

PreparedStatement preStmType = conn.prepareStatement("SELECT * FROM ? WHERE article_id = ?");
preStmType.setString(1, rsetArticle.getString(5));
preStmType.setInt(2, rsetArticle.getInt(1));

它似乎不起作用。当我删除 FROM 子句的参数并仅在 where 中使用它时,它可以工作,但我也想动态生成 FROM。

4

2 回答 2

1

不,你不能

准备好的语句仅支持数据文字。

说到这个特例,为什么要动态生成fieldlist呢?如果您不知道需要什么字段 - 只需全选,然后从返回的行中选择一个

于 2013-08-21T19:31:28.633 回答
-1

你在使用 Java 吗?

试试这个怎么样:

String qryStr = "SELECT * FROM "+rsetArticle.getString(5)+" "
qryStr =qryStr + "WHERE article_id = ?"

PreparedStatement preStmType = conn.prepareStatement(qryStr);
preStmType.setInt(1, rsetArticle.getInt(1));
于 2013-08-21T18:04:58.440 回答