【发布时间】:2014-02-18 02:04:01
【问题描述】:
我的目标是使用 Java 生成 条形图,所以我搜索了一个可以做到这一点的库。很快我找到了JFreeChart库并从这里下载。
给出的教程是数据是硬编码的。所以作为我的例子。但是,我正在尝试使用 数据访问对象 (DAO) 和 Servlet 从数据库中获取 JFreeChart 数据。
This example 显示如何从数据库中获取 JFreeChart 数据。但它不使用 DAO。
有没有人可以帮助我如何使用 DAO 和 SERVLET 获取 JFreeChart 数据?
在 DAO 中,我应该创建一个返回数组列表、整数、布尔值的方法吗?
我希望我的图表看起来像这样。
我的数据库
id | revenue | year
_______________________
R1 | 999 | 2012
R1 | 832 | 2013
R2 | 318 | 2012
R2 | 111 | 2013
R3 | 342 | 2012
R3 | 873 | 2013
我的小服务程序
public JFreeChart getChart() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(999, "2012", "R1");
dataset.setValue(832, "2013", "R1");
dataset.setValue(318, "2012", "R2");
dataset.setValue(111, "2013", "R2");
dataset.setValue(342, "2012", "R3");
dataset.setValue(873, "2013", "R3");
JFreeChart chart = ChartFactory.createBarChart3D("",
"Years", // domain axis label
"Revenue", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis axis = plot.getDomainAxis();
axis.setCategoryLabelPositions(CategoryLabelPositions
.createUpRotationLabelPositions(Math.PI / 8.0));
CategoryItemRenderer renderer = plot.getRenderer();
BarRenderer r = (BarRenderer) renderer;
r.setMaximumBarWidth(0.75);
return chart;
}
【问题讨论】:
-
对数据库使用 JDBC 还是休眠?
-
@Aniket JDBC。我的 SQL。我应该在 DAO 中创建什么方法?
标签: database servlets jfreechart dao bar-chart