如何将具有未知列数的ResultSet映射到List并将其显示在HTML表中?

我使用Netbeans,GlassFish和JavaDB创建了一个数据库应用程序。 现在我的控制器Servlet代码执行一些动态SQL查询并返回一个结果集(或者我可以改变toString)。 现在,如何以表格格式显示返回的结果集(我不知道结果集的结构)。 有人可以帮我这个吗?

您可以使用Map来表示“动态”行,该行可在 迭代 。 您可以使用ResultSetMetaData收集有关列的信息,例如列数和列标签 。

所以,这个映射应该做:

 List> rows = new ArrayList>(); ResultSetMetaData metaData = resultSet.getMetaData(); int columnCount = metaData.getColumnCount(); while (resultSet.next()) { Map columns = new LinkedHashMap(); for (int i = 1; i <= columnCount; i++) { columns.put(metaData.getColumnLabel(i), resultSet.getObject(i)); } rows.add(columns); } 

您可以在JSP中显示它,如下所示:

    

使用结果集元数据来了解查询返回的列数,这些列的类型等。

请参阅javadoc ,它也有一个示例。