2014-01-08 48 views
0

選擇一些產品後,用戶點擊繼續按鈕。現在我需要在下一頁顯示選定的數據。我使用以下代碼成功獲取了所選數據的ID。如何查詢數據庫,如果我們需要用jsp中的數組進行查詢?

String[] array = request.getParameterValues("arrayid"); 

現在我需要使用「select * from table where id =?」來查詢mysql數據庫。 我可以在循環中使用此查詢。但是有沒有其他的或更好的方法來做到這一點?

回答

1
String[] array = request.getParameterValues("arrayid");  
String sql = "SELECT * FROM TABLENAME WHERE id IN ?"; 
PreparedStatement ps = con.prepareStatement(sql); 
ps.setArray(1,con.createArrayOf("CHAR", array)); 
+0

感謝您的答覆。我明白這個邏輯。但在使用createArrayOf()方法時,出現錯誤「java.sql.SQLFeatureNotSupportedException」。 我用另一個邏輯來解決我的問題。以下鏈接解釋說明 [點擊此處](http://www.javaranch.com/journal/200510/Journal200510.jsp#a2) – Sree

2

而選擇作爲SELECT * FROM表其中id IN(逗號分隔IDS)

0

如果你的問題是,如何查詢表中的一個集ID,其他的答案正確參考使用IN關鍵字你到SQL的IN關鍵字。但是,如果您特別要問如何在Java中執行此操作,那麼JDBC的PreparedStatement(這是通常推薦的使用Java執行查詢的方式)不會使構造這些語句變得容易。我發佈了一個建議的方式來解決這個問題合理這裏乾淨地:Can PreparedStatement.addBatch() be used for SELECT queries?

相關問題