2013-03-06 84 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();