2015-01-13 65 views
1

我正在使用以下代碼段從選擇查詢中檢索有限數量的原始數據。問題與PreparedStatement與多個paramsin java mysql

String query="SELECT * FROM smsmessage WHERE recipient = ? LIMIT ?"; 
    PreparedStatement prepStmt = conn.prepareStatement(query); 
    prepStmt.setString(1,shortCode); 
    prepStmt.setString(2,batchSize); 
    ResultSet rs=prepStmt.executeQuery(); 

但它給了我下面的問題

ERROR {com.axiata.plugin.ReceiveSMS.ReceiveSMSNotification} - MySQL exception 
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 ''2'' at line 1 

有沒有在我的代碼段的任何錯誤?我不能像上面那樣使用多個參數嗎?

+2

@ M.Deinum雖然,即使你可以......限制不會是一個字符串。 – Powerlord

+0

那麼我怎樣才能做到這一點?我想通過兩個練習 – Malintha

+0

Doh ...完全錯過了。 –

回答

3

LIMIT子句要求int

prepStmt.setInt(2, Integer.parseInt(batchSize)); 

SELECT從MySQL文檔(部分)讀

LIMIT該子句可以用於約束由SELECT語句返回的行的數目。 LIMIT需要一個或兩個數字參數,它們都必須是非負整數常量(使用預準備語句時除外)。