我目前正在使用 Java、JS 和 JDBC 开发一个 Web 应用程序。我的数据库中有一些包含交易详细信息的表,我想用它们在 JSP 的 HighChart 中显示。我可以获得下表的结果集:
现在我想要的是根据可以传递给 HighChart 的年份和类别将数据拆分为多个 ArrayList - 每个 ArrayList 应该有一个包含年份、类别和每月销售额数组的对象,应如下所示
2015 , COLOUR , [1,0,0,6,0,0,0,0,0,0,0,0]
2015 , DESIGN , [2,4,6,0,0,0,0,0,0,0,0,0]
2016 , DESIGN , [0,0,0,5,5,4,7,0,0,0,0,0]
2016 , COLOUR , [0,0,0,5,5,3,6,0,0,0,0,0]
其中数组代表每年和类别的月销售额(0 表示该月没有销售额或数据库中没有数据)。
我已经尝试使用迭代器和 for 循环来解决这个问题很长一段时间了,但我无法让它工作。我不是在寻找代码,只是寻找一些关于如何以最佳方式实现这一点的想法和指导,因为我有点卡住了。
最佳答案
更新答案:
如果类别是动态的,您可以执行以下操作:
create table CATEGORY (
ID int NOT NULL AUTO_INCREMENT,
NAME varchar(16) NOT NULL,
PRIMARY KEY(ID)
)
create table MONTHS (
MONTH int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(MONTH)
)
create table CATEGORY_SUM (
ID int NOT NULL AUTO_INCREMENT,
CATEGORY int NOT NULL,
MONTH int NOT NULL,
PRIMARY KEY(ID),
FOREIGN KEY(CATEGORY) references CATEGORY(ID),
FOREIGN KEY(MONTH) references MONTHS(ID)
)
然后在您的 MONTHS 表中填写您需要的所有月份
然后你可以做类似的事情
SELECT * from CATEGORY_SUM
RIGHT OUTER JOIN MONTHS ON CATEGORY_SUM.MONTH = MONTHS.MONTH
order by CATEGORY_SUM.CATEGORY, CATEGORY_SUM.MONTH
我让您将类别的实际名称放入此查询中
关于java - 构建要在 Highchart 中显示的动态数量的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38614511/