使用数据库的条形图不显示

时间:2019-05-18 18:55:17

标签: java mysql jfreechart

我想使用带有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);
}

执行后,尽管代码语法没有错误,但没有显示条形图 有什么帮助吗?

更新:我尝试了相同的代码,但是这次我使用了数据库中的其他列,并且该列起作用了,而另一列知道它们都是数字,这又是什么问题

1 个答案:

答案 0 :(得分:1)

JDBCCategoryDataset API指定:

  

SQL查询必须至少返回两列。第一列为类别名称,其余为列值(每列代表一个系列)。

您已成功改编的完整example说明了效果。问题就变成了

  

另一个知道他们都是数字的人又有什么问题?

executeQuery()源显示了如何将每个java.sql.Types映射到一个数值:数字类型直接变成Number,日期类型变成Number表示距Java epoch的毫秒数,并且使用Double.valueOf()转换了字符类型; defaultnull

在这种情况下,请验证Prop_menages_Urbains_Proprietaires的SQL类型是否适合转换为数值。