2009-12-27 98 views
12

我想在JSP頁面中將我的Resultset轉換爲List。並想顯示所有的值。這是我的查詢:要列表的結果集

SELECT userId, userName 
    FROM user; 

我已經執行,使用PreparedStatement的得到結果集。但是,如何將它轉換爲列表和要顯示的結果是這樣的:

userID userName 
------------------ 
1001 user-X 
1006 user-Y 
1007 user-Z 
+0

在JSP中是否有可用的ResultSet實例(例如,在scriptlet標記中創建)還是正在servlet中創建並傳遞到JSP? – Rob 2009-12-27 20:00:12

回答

27

您需要遍歷的ResultSet對象在循環,逐行,拉出每個列的值:

List ll = new LinkedList(); 
ResultSet rs = stmt.executeQuery("SELECT userid, username FROM USER"); 

// Fetch each row from the result set 
while (rs.next()) { 
    int i = rs.getInt("userid"); 
    String str = rs.getString("username"); 

    //Assuming you have a user object 
    User user = new User(i, str); 

    ll.add(user); 
} 
+0

唯一可以解決的問題是將語句更改爲準備好的語句(與OP相同) – Bozho 2009-12-27 20:04:46

+2

是的,但這並不重要,因爲該問題僅涉及從ResultSet對象中獲取數據。 – 2009-12-27 20:05:54

+0

感謝您對此的回答和討論。我知道了。我將這些結果集添加到列表中並迭代它。 – 2009-12-27 20:34:29

5

你總是可以使用Commons DbUtilsMapListHandler。從DOC:

ResultSetHandler實現, 的ResultSet轉換成 地圖

的列表,它會佔用大量的樣板代碼伸出你的雙手。

5

ResultSet應該永遠不會達到JSP。它應該映射到數據結構或對象中,並在創建它的方法範圍內關閉。這是一個數據庫遊標,一個稀缺資源。如果你堅持這樣的設計,你的應用很快就會用完。