要列出的结果集
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 地图
所以它会从你手中拿走很多样板代码。
【讨论】:
以上是关于要列出的结果集的主要内容,如果未能解决你的问题,请参考以下文章