使用jdbc PreparedStatement参数化子查询

时间:2017-01-09 16:13:02

标签: jdbc

我有以下查询,其中第一个参数本身是子查询

java代码是:

String query = select * from (?) where ROWNUM < ?
PreparedStatement statement = conn.preparedStatement(query)
statement.setString(1, "select * from foo_table")
statement.setInt(2, 3)

当我运行java代码时,我得到一个异常。我可以使用哪些替代方法将第一个子查询statement.setString(1, "select * from foo_table")作为参数?

1 个答案:

答案 0 :(得分:1)

这是不可能的,参数占位符只能表示值,而不能表示对象名称(如表名,列名等),也不能表示子选择或其他查询元素。

您需要使用字符串连接或其他字符串格式化/模板选项动态创建要执行的查询。