2013-03-06 81 views
0

对于准备好的语句,我在语法上遇到了一些麻烦,我相信。用MySQL编写语句?

我有以下代码

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

回答

7

只需使用

ps.executeQuery(); 

(即使用重载executeQuery()方法,其不采取任何参数)。准备报表时,您已经通过了查询。

+0

'ps.executeQuery()'在他的例子中。 – 2013-03-06 21:30:36

+0

您应该强调这是重载版本。我花了几秒钟才明白你在说什么:) – adarshr 2013-03-06 21:33:12

+0

谢谢,现在作品:) – zProgrammer 2013-03-06 21:34:05

-1

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

2

使用这个查询: -

字符串QUERY2 = “SELECT L-NAME FROM school_student其中SID = ”+属性+“ ORDER BY SID;”;

和简单地使用

ps.executeQuery();