2013-04-02 54 views
0

我想一次輸入一組數字到prepared statement。這是我正在嘗試的在準備好的語句中輸入一組數字

String parameters = "2,6,9"; 
preparedStatement = connection.prepareStatement("SELECT * FROM user WHERE id IN (?)"); 
preparedStatement.setString(1, parameters); 

但是,這隻能讓我回到第一個人(人2)。這是B/C我發送IN參數中的字符串。當你打印出preparedStatement.toString()到控制檯會被髮送到數據庫的結果是

SELECT * FROM user WHERE id IN ('2,6,9') 

所以我的問題是周圍的蜱蟲,我需要以某種方式把他們救出來。有任何想法嗎?

Ps:我知道我可以用逗號分割字符串並沿着這條路線走,因爲我已經實現了它。不過,如果可能的話,我想避免這種情況。尋找更好的方法。

+1

好吧,你似乎沒有多少選擇。看到這個問題:http://stackoverflow.com/questions/178479/preparedstatement-in-clause-alternatives – TheVillageIdiot

+0

偉大的鏈接,爲我回答了很多東西謝謝 – gmustudent

回答

1

嘗試設置的所有值:

PreparedStatement stmt = conn.prepareStatement(
    "select id, name from users where id in (?, ?, ?)"); 
stmt.setInt(1); 
stmt.setInt(2); 
stmt.setInt(3); 

注:這是例如在這question給出javaranch頁。

+0

謝謝你的鏈接 – gmustudent