java - 构建要在 Highchart 中显示的动态数量的数组

标签 java arrays database-design highcharts

我目前正在使用 Java、JS 和 JDBC 开发一个 Web 应用程序。我的数据库中有一些包含交易详细信息的表,我想用它们在 JSP 的 HighChart 中显示。我可以获得下表的结果集:

enter image description here

现在我想要的是根据可以传递给 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/

相关文章:

java - 国家边界坐标数据

java - 在对话框内的 editText 中隐藏键盘

c++ - 将二维对象数组的指针传递给方法

mysql - 关系数据库管理系统 : How to represent a composite entity

database - 平凡的 super 键可以被视为候选键吗?

java - Scala 编译器错误 : java. lang.AssertionError:断言失败(即使在 Eclipse 中指定了项目依赖项)

java - 我的希尔密码有什么问题吗? (Java 安卓)

C++ std::generate 函数总是给出相同的值

PHP post 中的 html 多 <select> 数组

mysql - 自动更新数据库Mysql中的库存