要列出的结果集

Posted

技术标签:

【中文标题】要列出的结果集【英文标题】:Resultset To List 【发布时间】:2010-12-30 07:47:51 【问题描述】:

我想在我的 JSP 页面中将我的结果集转换为列表。并希望显示所有值。这是我的查询:

SELECT userId, userName 
  FROM user;

我已经使用 preparedstatement 执行了该操作并获得了 Resultset。但是如何将其转换为 List 并希望像这样显示结果:

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

【问题讨论】:

JSP 中是否有可用的 ResultSet 实例(例如,在 scriptlet 标记中创建),还是在 servlet 中创建并传递给 JSP? 【参考方案1】:

您需要在循环中逐行迭代 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) 是的,但这并不重要,因为问题只涉及从 ResultSet 对象中获取数据。 感谢您对此的回答和讨论。我得到了它。我在列表中添加了这些结果集并对其进行迭代。【参考方案2】:

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

【讨论】:

【参考方案3】:

您始终可以使用Commons DbUtils 和MapListHandler。来自文档:

ResultSetHandler 实现 将 ResultSet 转换为 List 地图

所以它会从你手中拿走很多样板代码。

【讨论】:

以上是关于要列出的结果集的主要内容,如果未能解决你的问题,请参考以下文章

将 Java 结果集转换为字符串数组

PTA-天梯赛训练列出连通集

记一次ES查询结果集失败

SQL语句对返回的结果集里的字段再进行条件查询,在一个结果集显示

sql 基础语句

参考光标和结果集