我想使用带有Jfreechart的mysql数据库创建图表,这是我使用的代码:
try {
String query =
"Select id,Prop_menages_Urbains_Proprietaires from fes";
JDBCCategoryDataset dataset =
new JDBCCategoryDataset(
DBConnection.DBConnection(),
query
);
JFreeChart chart =
ChartFactory.createBarChart(
"test",
"id",
"Prop_menages_Urbains_Proprietaires",
dataset,
PlotOrientation.VERTICAL,
false,
true,
true
);
BarRenderer render = null;
CategoryPlot plot = null;
render = new BarRenderer();
ChartFrame fram =
new ChartFrame("test", chart);
fram.setVisible(true);
fram.setSize(600,650);
}
catch(Exception ex) {
System.out.println("Erreur: " + ex);
}
执行后,尽管代码语法没有错误,但没有显示条形图 有什么帮助吗?
更新:我尝试了相同的代码,但是这次我使用了数据库中的其他列,并且该列起作用了,而另一列知道它们都是数字,这又是什么问题
答案 0 :(得分:1)
JDBCCategoryDataset
API指定:
SQL查询必须至少返回两列。第一列为类别名称,其余为列值(每列代表一个系列)。
您已成功改编的完整example说明了效果。问题就变成了
另一个知道他们都是数字的人又有什么问题?
executeQuery()
源显示了如何将每个java.sql.Types
映射到一个数值:数字类型直接变成Number
,日期类型变成Number
表示距Java epoch的毫秒数,并且使用Double.valueOf()
转换了字符类型; default
是null
。
在这种情况下,请验证Prop_menages_Urbains_Proprietaires
的SQL类型是否适合转换为数值。