结果集到列表

时间:2009-12-27 19:47:54

标签: java jsp jdbc

我想在我的JSP页面中将Resultset转换为List。并希望显示所有值。这是我的问题:

SELECT userId, userName 
  FROM user;

我已使用 preparedstatement 执行了该操作,并获得了 Resultset 。但是如何将其转换为列表并希望显示如下结果:

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

3 个答案:

答案 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 DbUtilsMapListHandler。来自doc:

  

ResultSetHandler实现   将ResultSet转换为List of   地图

所以你手上需要很多样板代码。

答案 2 :(得分:5)

ResultSet永远不应该像JSP那样。它应该映射到数据结构或对象,并在创建它的方法范围内关闭。它是一个数据库游标,一种稀缺资源。如果你坚持使用这样的设计,你的应用程序很快就会耗尽它们。