用MySQL编写语句?

时间:2013-03-06 21:28:07

标签: java mysql jdbc prepared-statement

对于准备好的语句,我遇到了一些问题,我通过语法相信。

我有以下代码

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中,查询工作正常,没有错误,并给我我想要的。我如何设置“?”的值似乎有问题。在我的查询?我使用了错误的语法吗?

3 个答案:

答案 0 :(得分:7)

只需使用

ps.executeQuery();

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

答案 1 :(得分:2)

使用此查询: -

  

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

并简单地使用

  

ps.executeQuery();

答案 2 :(得分:-1)

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