我有来自SQL(1)的数据:
+------------+---------+---------+
| Employee | AMNT | DATE |
+------------+---------+---------+
| John | 100 | 12-MAY |
| Mary | 120 | 12-MAY |
| John | 110 | 13-MAY |
| Kate | 30 | 13-MAY |
| Mary | 230 | 13-MAY |
| ... | ... | ... |
| ... | ... | 16-JUN |
+------------+---------+---------+
我放入了对象列表,这些数据可以在PrimeFaces中显示为:
<p:dataTable id="resultTable" var="result" value="#{myBean.searchResult}">
<p:column headerText="Employee">
<h:outputText value="#{result.empName}" />
</p:column>
<p:column headerText="Amount">
<h:outputText value="#{result.amnt}" />
</p:column>
<p:column headerText="Date">
<h:outputText value="#{result.date}" />
</p:column>
</p:dataTable>
但有必要在Java应用程序中使用水平滚动显示此数据,如下所示(2):
+------------+---------+---------+------+---------+
| Employee | 12-MAY | 13-MAY | ... | 16-JUN |
+------------+---------+---------+------+---------+
| John | 100 | 110 | | |
| Mary | 120 | 130 | | |
| Kate | | 30 | | |
+------------+---------+---------+------+---------+
我不使用Oracle SQL中的PIVOT函数,因为我的项目使用MyBatis框架,并且固定列名称更可取(可以使用别名,但列数可以是30+)。 所以我决定从第一个表(1)中获取数据并用Java进行转换。
哪种结构更容易用来制作这样的表格以及如何显示PrimeFaces dataTable这样的结构?