我想在我的JSP页面中将Resultset转换为List。并希望显示所有值。这是我的问题:
SELECT userId, userName
FROM user;
我已使用 preparedstatement 执行了该操作,并获得了 Resultset 。但是如何将其转换为列表并希望显示如下结果:
userID userName
------------------
1001 user-X
1006 user-Y
1007 user-Z
答案 0 :(得分:32)
您需要逐行遍历循环中的 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);
}
答案 1 :(得分:6)
您可以随时使用Commons DbUtils和MapListHandler。来自doc:
ResultSetHandler实现 将ResultSet转换为List of 地图
所以你手上需要很多样板代码。
答案 2 :(得分:5)
ResultSet永远不应该像JSP那样。它应该映射到数据结构或对象,并在创建它的方法范围内关闭。它是一个数据库游标,一种稀缺资源。如果你坚持使用这样的设计,你的应用程序很快就会耗尽它们。