我想在JSP頁面中將我的Resultset轉換爲List。並想顯示所有的值。這是我的查詢:要列表的結果集
SELECT userId, userName
FROM user;
我已經執行,使用PreparedStatement的和得到結果集。但是,如何將它轉換爲列表和要顯示的結果是這樣的:
userID userName
------------------
1001 user-X
1006 user-Y
1007 user-Z
我想在JSP頁面中將我的Resultset轉換爲List。並想顯示所有的值。這是我的查詢:要列表的結果集
SELECT userId, userName
FROM user;
我已經執行,使用PreparedStatement的和得到結果集。但是,如何將它轉換爲列表和要顯示的結果是這樣的:
userID userName
------------------
1001 user-X
1006 user-Y
1007 user-Z
您需要遍歷的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);
}
唯一可以解決的問題是將語句更改爲準備好的語句(與OP相同) – Bozho 2009-12-27 20:04:46
是的,但這並不重要,因爲該問題僅涉及從ResultSet對象中獲取數據。 – 2009-12-27 20:05:54
感謝您對此的回答和討論。我知道了。我將這些結果集添加到列表中並迭代它。 – 2009-12-27 20:34:29
你總是可以使用Commons DbUtils和MapListHandler。從DOC:
ResultSetHandler實現, 的ResultSet轉換成 地圖
的列表,它會佔用大量的樣板代碼伸出你的雙手。
ResultSet應該永遠不會達到JSP。它應該映射到數據結構或對象中,並在創建它的方法範圍內關閉。這是一個數據庫遊標,一個稀缺資源。如果你堅持這樣的設計,你的應用很快就會用完。
在JSP中是否有可用的ResultSet實例(例如,在scriptlet標記中創建)還是正在servlet中創建並傳遞到JSP? – Rob 2009-12-27 20:00:12