1

我正在尝试学习如何执行 PreparedStatement,如下所示:

createConnection();
conn.setAutoCommit(false);
String sql = "SELECT MAX(?) FROM ?";
PreparedStatement stmt = conn.prepareStatement(sql);

但是,当我点击最后一行时,它会抛出一个 java.sql.SQLSyntaxErrorException,如下所示:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "?" at line 1, column 20.

我到处搜索,但找不到任何失败的原因。我究竟做错了什么?稍后在我设置的代码中?参数表示完整的字符串值,但是当我调试时,我从来没有达到这一点。它碰到这个 conn.prepareStatement 行并抛出异常。谢谢您的帮助。我不知道它是否有所作为,但它在 derby 数据库中。

4

1 回答 1

1

想你的?标记为 sql 变量。您不能对变量执行 select MAX,它在语法上不正确。

您不能执行以下操作:

declare @myvar int
select @myvar = 1

SELECT MAX(@myvar) from SomeTable
于 2012-05-24T14:27:08.273 回答