Java 构建要在Highchart中显示的动态阵列数
我目前正在使用Java、JS和JDBC开发一个web应用程序。我的数据库中有一些带有事务细节的表,我想用它们在JSP的HighChart中显示。我可以得到下表的结果集: 现在,我想根据我可以传递到HighChart的年份和类别,将数据拆分为若干Java 构建要在Highchart中显示的动态阵列数,java,arrays,database-design,highcharts,Java,Arrays,Database Design,Highcharts,我目前正在使用Java、JS和JDBC开发一个web应用程序。我的数据库中有一些带有事务细节的表,我想用它们在JSP的HighChart中显示。我可以得到下表的结果集: 现在,我想根据我可以传递到HighChart的年份和类别,将数据拆分为若干ArrayLists,每个ArrayList都应该有一个包含年份、类别和月度销售额数组的对象,看起来应该是这样的 2015 , COLOUR , [1,0,0,6,0,0,0,0,0,0,0,0] 2015 , DESIGN , [2,4,6,0,0,
ArrayList
s,每个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表示该月没有销售额或DB没有数据)
很长一段时间以来,我一直在尝试使用迭代器和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)
)
然后把你需要的所有月份填入你的月份表
然后你可以做类似的事情
SELECT * from CATEGORY_SUM
RIGHT OUTER JOIN MONTHS ON CATEGORY_SUM.MONTH = MONTHS.MONTH
order by CATEGORY_SUM.CATEGORY, CATEGORY_SUM.MONTH
我让您将类别的实际名称输入到这个查询中您的数据库表/设计一团糟。有可能改变吗?是的,有什么建议吗?这只是我正在进行的一个查询的结果表,问题是这些类别也是动态的,我只是以它们为例。我想为用户可能创建的每个类别创建一个单独的ArrayList。谢谢,我将尝试这个。