0

对于准备好的语句,我在语法上遇到了一些麻烦。

我有以下代码

String query2="SELECT lname FROM school_student WHERE sid = ? ORDER BY sid;";

PreparedStatement ps = cn.prepareStatement(query2);
ps.setInt(1, 3);
ResultSet rs = ps.executeQuery(query2);

我遇到的问题是我收到此错误消息:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? ORDER BY sid' at line 1

但是,当我替换“?”时 在我对 3 的查询中,查询工作正常,没有错误,并给了我想要的东西。我如何设置“?”的值似乎有问题。在我的查询中?我使用了错误的语法吗?

4

3 回答 3

7

只需使用

ps.executeQuery();

(即使用executeQuery()不带任何参数的重载方法)。您在准备语句时已经通过了查询。

于 2013-03-06T21:29:39.263 回答
2

使用此查询:-

String query2 = "SELECT lname FROM school_student WHERE sid = "+attribute+" ORDER BY sid;";

并简单地使用

ps.executeQuery();

于 2014-03-14T11:50:48.890 回答
-1

我认为他们在准备查询时是语法问题尝试这个... String query2="SELECT lname FROM school_student WHERE sid = +variablename+ ORDER BY sid;"

于 2013-03-06T22:19:58.510 回答